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_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] имя RENAME [ COLUMN ] имя_столбца TO новое_имя_столбца
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.