ALTER VIEW
Изменяет свойства представления.
Синтаксис
ALTER VIEW [ IF EXISTS ] <name> ALTER [ COLUMN ] <column_name> SET DEFAULT <expression>
ALTER VIEW [ IF EXISTS ] <name> ALTER [ COLUMN ] <column_name> DROP DEFAULT
ALTER VIEW [ IF EXISTS ] <name> OWNER TO <new_owner>
ALTER VIEW [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER VIEW [ IF EXISTS ] <name> SET SCHEMA <new_schema>
ALTER VIEW [ IF EXISTS ] <name> SET ( <view_option_name> [= <view_option_value>] [, ... ] )
ALTER VIEW [ IF EXISTS ] <name> RESET ( <view_option_name> [, ... ] )
Описание
ALTER VIEW изменяет различные вспомогательные свойства представления.
Если вы хотите изменить запрос, определяющий представление, используйте CREATE OR REPLACE VIEW.
Необходимо быть владельцем представления, чтобы выполнить эту команду.
Чтобы изменить схему представления, необходимо также иметь привилегию CREATE в новой схеме.
Чтобы изменить владельца, необходимо также быть прямым или косвенным членом новой роли владельца, и эта роль должна иметь привилегию CREATE в схеме представления.
Эти ограничения гарантируют, что смена владельца не позволит сделать ничего, что нельзя было бы сделать путем удаления и повторного создания представления.
Однако суперпользователь может изменить владельца любого представления.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя (опционально с указанием схемы) существующего представления |
IF EXISTS |
Не завершать действие ошибкой, если представление не существует. В этом случае будет показано уведомление |
SET/DROP DEFAULT |
Эти формы устанавливают или удаляют значение по умолчанию для столбца.
Значение по умолчанию столбца представления подставляется в любую команду |
new_owner |
Новый владелец представления |
new_name |
Новое имя представления |
new_schema |
Новая схема для представления |
SET ( <view_option_name> [= <view_option_value>] [, … ] ) |
Устанавливает или сбрасывает опцию представления. В настоящее время поддерживаются следующие опции:
|
Примечания
По историческим причинам ALTER TABLE также может использоваться с представлениями; однако единственные варианты ALTER TABLE, допустимые с представлениями, эквивалентны операторам, показанным выше.
Например, переименовать представление myview в newview можно любым из следующих двух способов:
ALTER VIEW myview RENAME TO newview;
ALTER TABLE myview RENAME TO newview;
Примеры
Переименовать представление 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 является расширением Greengage DB стандарта SQL.