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 на новую схему. Чтобы изменить владельца, вы должны иметь возможность использовать SET ROLE для новой роли владельца, и эта роль должна иметь привилегию 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-1C.

См. также

CREATE VIEW, DROP VIEW