ALTER VIEW#

ALTER VIEW

ALTER VIEW

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 | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
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).

Вы должны быть владельцем представления, чтобы использовать ALTER VIEW. Чтобы изменить схему представления, вам также необходимо иметь привилегию CREATE на новой схеме. Чтобы изменить владельца, вы также должны быть прямым или косвенным членом новой роли-владельца, и у этой роли должна быть привилегия CREATE на схему представления. (Эти ограничения обеспечивают, что изменение владельца не делает ничего, что вы не могли бы сделать, удалив и создав представление заново. Однако суперпользователь может изменять владельца любого представления в любом случае).

Параметры

name

Имя (опционально с указанием схемы) существующего представления.

column_name

Имя существующей колонки.

new_column_name

Новое имя для существующей колонки.

IF EXISTS

Не генерировать ошибку, если представление не существует. В этом случае будет выдано уведомление.

SET/DROP DEFAULT

Эти формы устанавливают или удаляют значение по умолчанию для столбца. Значение по умолчанию столбца представления подставляется в любую команду INSERT или UPDATE, целью которой является представление, перед применением каких-либо правил или триггеров для представления. Значение по умолчанию представления будет иметь приоритет перед значениями по умолчанию из базовых отношений.

new_owner

Имя пользователя нового владельца представления.

new_name

Новое имя для представления.

new_schema

Новая схема для представления.

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

Устанавливает или сбрасывает опцию представления. В настоящее время поддерживаются следующие опции:

check_option (enum)

Изменяет опцию проверки представления. Значение должно быть local или cascaded.

security_barrier (boolean)

Изменяет свойство security-barrier представления. Значение должно быть логическим значением, таким как true или false.

security_invoker (boolean)

Изменяет свойство security-invoker представления. Значение должно быть логическим значением, таким как 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 will receive a NULL
INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time

Совместимость

ALTER VIEW - это расширение стандарта SQL для Tantor SE.

См. также

CREATE VIEW, DROP VIEW