CREATE VIEW#
Синтаксис#
CREATE [ OR REPLACE ] VIEW view_name
[ COMMENT view_comment ]
[ SECURITY { DEFINER | INVOKER } ]
AS query
Описание#
Создает новое представление. При выполнении запроса к представлению,
обращение к представлению будет заменено запросом, указанным в команде
CREATE VIEW. Необязательное выражение OR REPLACE заменяет
существующее представление с таким же именем.
Безопасность#
Представление может быть создано с двумя режимами безопасности: DEFINER и INVOKER.
По умолчанию используется режим DEFINER. Вы можете изменить режим по умолчанию с помощью
параметра конфигурации cedrusdata.default-view-security.
В режиме безопасности DEFINER доступ к таблицам, использованным в
представлении, осуществляется с использованием разрешений пользователя,
создавшего преставление. Это позволяет предоставлять ограниченный доступ
к базовым таблицам, к которым текущему пользователю может быть запрещен
прямой доступ.
В режиме безопасности INVOKER доступ к таблицам, использованным в
представлении, осуществляется с использованием разрешений пользователя,
выполняющего запрос.
Примеры#
Создает представление test для таблицы orders:
CREATE VIEW test AS
SELECT orderkey, orderstatus, totalprice / 2 AS half
FROM orders;
Создает представление test_with_comment с комментарием:
CREATE VIEW test_with_comment
COMMENT 'A view to keep track of orders.'
AS
SELECT orderkey, orderstatus, totalprice
FROM orders;
Создает представление orders_by_date, которое группирует строки из
таблицы orders по атрибуту orderdate:
CREATE VIEW orders_by_date AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate;
Создает представление, которое заменяет существующее:
CREATE OR REPLACE VIEW test AS
SELECT orderkey, orderstatus, totalprice / 4 AS quarter
FROM orders;