double arrow

Описание. Оператор CREATE VIEW (InterBase)


Оператор CREATE VIEW (InterBase)

CREATE VIEW описывает вид данных основанный на одной или более основной таблицы в базе данных. Возвращаемые строки определены инструкцией SELECT, который перечисляет столбцы исходных таблиц. Только определение вида существует в базе данных; вид непосредственно не представляет из себя сохраненные данные. Это позволяет выполнять операции выбора, join и union над видами, как если бы они были таблицами.

Пользователь, который создает вид – его владелец, и имеет все привилегии для этого, включая возможность предоставлять (GRANT) привилегии другим пользователям, триггерам и сохраненным процедурам. Пользователь может иметь привилегии к виду, без необходимости иметь доступ к таблицам, на которых вид основан. При создании видов:

  • Вид только для чтения требует SELECT привилегиями на основные таблицы.
  • Модифицируемый вид требует ALL привилегий на основные таблицы.

Опция view_col гарантирует, что вид всегда содержит те же самые столбцы и, что столбцы имеют те же самые, определенные видом, имена. Имена столбцов вида соответствуют порядку и количеству столбцов перечисленных в <select>, по этому определите все столбцы вида или ни одного.




Определение view_col может содержать один или более столбцов основанных на выражении, которое комбинирует результаты двух столбцов. Выражение должно возвращать одиночное значение и не должно возвращать массив или массив элементов. Если вид включает выражение view_col опция обязательна.

Обратите внимание: Любые столбцы, используемые в значении выражения, должны присутствовать раньше чем выражение может быть определено.

Предложение инструкции SELECT не должно включать предложение ORDER BY.

WITH CHECK OPTION предотвращает операции INSERT или UPDATE в обзоре, если они нарушают условия поиска в конструкции WHERE оператора SELECT.

Вид модифицируем если:

  • Он подмножество одиночной таблицы или другого модифицируемого вида.
  • Все столбцы базовой таблицы исключенные из определения вида допускают значения NULL.
  • Инструкция SELECT вида не содержит подзапросов, предикат DISTINCT, предложение HAVING, агрегатных функций, joined таблиц, определенных пользователем функций или сохраненных процедур.

Если определение вида не удовлетворяет этим условиям, он рассматривается, как «только для чтения».

Обратите внимание: Виды только для чтения могут быть модифицированы, используя комбинацию определенных пользователем справочных ограничений, триггеров и уникальных индексов.







Сейчас читают про: