Шифрование и секретность в Linux


СREATE RULE



СREATE RULE

Определение нового правила в таблице.

Синтаксис

CREATE RULE правило AS ON событие ТО объект

[ WHERE условие ] DO [ INSTEAD ] операция

операция ::= NOTHING | query | ( query [; ...] ) | [ query [: ...] ]

Параметры

  • правило. Имя создаваемого правила.
  • событие. Событие, при наступлении которого проверяется правило. Допустимыми значениями параметра являются SELECT, UPDATE, DELETE и INSERT.
  • объект. Имя таблицы или уточненное имя поля (в формате таблица. поле).
  • условие. Логическое выражение SQL, определяющее критерий применения правила. В условии не должны содержаться ссылки на другие таблицы, однако в нем могут присутствовать ссылки на специальные отношения new и old, которые соответственно представляют новые и существующие записи.
  • INSTEAD. Ключевое слово INSTEAD означает, что заданная операция выполняется вместо события. Обычно операция выполняется перед наступлением события.


  • операция. Запрос (или запросы), который определяет действия, выполняемые при наступлении указанного события. Возможно указание любых синтаксически правильных команд SELECT, UPDATE, DELETE и INSERT. Перечисляемые запросы заключаются в круглые скобки.

В параметрах условие и операция могут использоваться специальные отношения new и old, при помощи которых можно получить доступ к новым и старым значениям полей объекта, указанного в определении правила.

Отношение new доступно в правилах INSERT и UPDATE; в нем содержатся значения вставляемых или обновляемых полей. Отношение old доступно в правилах SELECT, UPDATE и DELETE; в нем содержатся данные существующих записей, участвующих в операции выборки, обновления или удаления.

Результаты

CREATE. Это сообщение выдается при успешном создании нового правила.

Описание

Команда CREATE RULE создает в таблицах правила, предназначенные для выполнения альтернативных действий при вставке, обновлении и удалении данных. Система правил PostgreSQL также может использоваться при реализации представлений таблиц.

При выполнении команды SELECT, INSERT, DELETE и UPDATE автоматически производится поиск правил для этого события (порядок вызова правил не гарантирован). Если правило содержит секцию WHERE, проверяется указанное в ней условие, и если условие истинно — выполняется операция, заданная в определении правила. Если в определении правила присутствует ключевое слово INSTEAD, операция выполняется вместо обрабатываемого события; в противном случае она выполняется перед наступлением события. Будьте внимательны и избегайте циклических правил, то есть правил, в которых присутствуют ссылки на другие правила, которые, в свою очередь, ссылаются на исходное правило.

Примечание 1
Примечание 1

При использовании правил ON SELECT ключевое слово INSTEAD является обязательным. Фактически это означает, что правила ON SELECT всегда обеспечивают правильную реализацию представлений таблиц.



Содержание раздела