ALTER VIEW
Эта страница переведена при помощи нейросети GigaChat.
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
.
Изменять определение представления может только его владелец. Чтобы изменить схему представления, необходимо иметь привилегию 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 для PostgreSQL.