ALTER VIEW
ALTER VIEW — изменить определение представления
Синтаксис
ALTER VIEW [ IF EXISTS ] имя ALTER [ COLUMN ] имя_столбца SET DEFAULT выражение
ALTER VIEW [ IF EXISTS ] имя ALTER [ COLUMN ] имя_столбца DROP DEFAULT
ALTER VIEW [ IF EXISTS ] имя OWNER TO { новый_владелец | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] имя RENAME TO новое_имя
ALTER VIEW [ IF EXISTS ] имя SET SCHEMA новая_схема
ALTER VIEW [ IF EXISTS ] имя SET ( имя_параметра_представления [= значение_параметра_представления] [, ... ] )
ALTER VIEW [ IF EXISTS ] имя RESET ( имя_параметра_представления [, ... ] )
Описание
Команда ALTER VIEW
изменяет различные дополнительные свойства представления.
(Для изменения запроса, определяющего представление, используйте команду CREATE OR REPLACE VIEW
.)
Чтобы использовать команду ALTER VIEW
, нужно быть владельцем
соответствующего представления. Чтобы изменить схему представления, необходимо
помимо этого иметь право CREATE в новой схеме. Для смены владельца текущий пользователь
также должен быть непосредственным или опосредованным членом новой роли-владельца, и
эта роль должна иметь право CREATE в схеме представления.
(Эти ограничения направлены на то, чтобы при смене владельца не происходило ничего,
что нельзя было бы сделать путем удаления и повторного создания представления.
Однако суперпользователь всё равно может сменить владельца любого представления.)
Параметры
имя
Имя существующего представления (может быть дополнено схемой).
имя_столбца
Имя существующего столбца.
новое_имя_столбца
Новое имя существующего столбца.
IF EXISTS
Не считать ошибкой, если представление не существует. В этом случае будет выдано замечание.
SET/DROP DEFAULT
Эти формы устанавливают или удаляют значение по умолчанию для столбца.
Значение по умолчанию столбца представления подставляется в команды
INSERT
или UPDATE
, чьей целью является это представление, перед применением к
последнему любых правил или триггеров. Таким образом, значение по умолчанию представления
будет иметь приоритет над любыми значениями по умолчанию в нижележащих отношениях.
новый_владелец
Имя пользователя нового владельца представления.
новое_имя
Новое имя представления.
новая_схема
Новая схема представления.
SET ( имя_параметра_представления [= значение_параметра_представления] [, ... ] ) RESET ( имя_параметра_представления [, ... ] )
Устанавливает или сбрасывает параметр представления. В настоящее время поддерживаются следующие параметры:
-
check_option (string)
Изменяет параметр проверки представления. Допустимые значения: local (локальная) или cascaded (каскадная)
-
security_barrier (boolean)
Изменяет свойство представления, включающее барьер безопасности. Значение должно быть логическим: true или false.
Примечания
По историческим причинам команду ALTER TABLE
тоже можно использовать с
представлениями; но формы команды ALTER TABLE
, которые
разрешены для работы с представлениями, эквивалентны показанным выше.
Примеры
Переименование представления foo в bar:
ALTER VIEW foo RENAME TO bar;
Добавление значения столбца по умолчанию в изменяемое представление:
CREATE TABLE base_table (id int, ts timestamptz);
CREATE VIEW a_view AS SELECT * FROM base_table;
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
INSERT INTO base_table(id) VALUES(1); -- в ts окажется значение NULL
INSERT INTO a_view(id) VALUES(2); -- в ts окажется текущее время
Совместимость
Команда ALTER VIEW
, реализованная в QHB, является расширением стандарта SQL.