Перейти к основному содержимому

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.

Смотрите также

CREATE VIEW, DROP VIEW