×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.61. CREATE EVENT TRIGGER

6.1.61. CREATE EVENT TRIGGER

CREATE EVENT TRIGGER — создание нового триггера события

Синтаксис

CREATE EVENT TRIGGER name
    ON event
    [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
    EXECUTE { FUNCTION | PROCEDURE } function_name()

Описание

Команда CREATE EVENT TRIGGER создаёт новый триггер события. Всякий раз, когда происходит указанное событие и условие WHEN, связанное с триггером (если оно есть), удовлетворяется, будет выполнена функция триггера. Общее введение в триггеры событий см. в разделе Глава 5.3. Пользователь, создающий триггер события, становится его владельцем.

Параметры

name

Имя, присваиваемое новому триггеру. Это имя должно быть уникальным в пределах базы данных.

event

Имя события, которое вызывает вызов заданной функции. Подробнее об именах событий см. в разделе Раздел 5.3.1.

filter_variable

Имя переменной, используемой для фильтрации событий. Это позволяет ограничить срабатывание триггера подмножеством случаев, в которых он поддерживается. В настоящее время единственная поддерживаемая filter_variable — это TAG.

filter_value

Список значений для связанной переменной filter_variable, при которых триггер должен срабатывать. Для TAG это означает список тегов команд (например, 'DROP FUNCTION').

function_name

Предоставляемая пользователем функция, объявленная как не принимающая аргументов и возвращающая тип event_trigger.

В синтаксисе CREATE EVENT TRIGGER ключевые слова FUNCTION и PROCEDURE эквивалентны, но ссылаться в любом случае должна на функцию, а не на процедуру. Использование ключевого слова PROCEDURE здесь является историческим и устаревшим.

Примечания

Только суперпользователи могут создавать триггеры событий.

Триггеры событий отключены в однопользовательском режиме (см. postgres), а также когда параметр event_triggers установлен в false. Если ошибочный триггер события настолько нарушит работу базы данных, что вы даже не сможете удалить его, перезапустите с параметром event_triggers, установленным в false, чтобы временно отключить триггеры событий, или в однопользовательском режиме, и тогда вы сможете это сделать.

Примеры

Запретить выполнение любой команды DDL:

CREATE OR REPLACE FUNCTION abort_any_command()
  RETURNS event_trigger
 LANGUAGE plpgsql
  AS $$
BEGIN
  RAISE EXCEPTION 'command % is disabled', tg_tag;
END;
$$;

CREATE EVENT TRIGGER abort_ddl ON ddl_command_start
   EXECUTE FUNCTION abort_any_command();

Совместимость

В стандарте SQL нет оператора CREATE EVENT TRIGGER.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению