FirebirdSQL logo

RDB$TRIGGERS

Описания триггеров.

Table 1. Описание столбцов таблицы RDB$TRIGGERS
Наименование столбца Тип данных Описание

RDB$TRIGGER_NAME

CHAR(63)

Имя триггера.

RDB$RELATION_NAME

CHAR(63)

Имя таблицы или представления, для которого используется триггер.Если триггер применяется не к событию таблицы, а к событию базыданных, то в этом поле находится NULL.

RDB$TRIGGER_SEQUENCE

SMALLINT

Последовательность (позиция) триггера. Ноль обычно означает, чтопоследовательность не задана.

RDB$TRIGGER_TYPE

BIGINT

Событие, на которое вызывается триггер:

1 — BEFORE INESRT;
2 — AFTER INSERT;
3 — BEFORE UPDATE;
4 — AFTER UPDATE;
5 — BEFORE DELETE;
6 — AFTER DELETE;
17 — BEFORE INSERT OR UPDATE;
18 — AFTER INSERT OR UPDATE;
25 — BEFORE INSERT OR DELETE;
26 — AFTER INSERT OR DELETE;
27 — BEFORE UPDATE OR DELETE;
28 — AFTER UPDATE OR DELETE;
113 — BEFORE INSERT OR UPDATE OR DELETE;
114 — AFTER INSERT OR UPDATE OR DELETE;
8192 — ON CONNECT;
8193 — ON DISCONNECT;
8194 — ON TRANSACTION START;
8195 — ON TRANSACTION COMMIT;
8196 — ON TRANSACTION ROLLBACK.

Описание событий DDL триггеров смотри ниже.

RDB$TRIGGER_SOURCE

BLOB TEXT

Хранит исходный код триггера в PSQL.

RDB$TRIGGER_BLR

BLOB BLR

Хранит триггер в двоичном коде BLR.

RDB$DESCRIPTION

BLOB TEXT

Текст примечания триггера.

RDB$TRIGGER_INACTIVE

SMALLINT

Указывает, является ли триггер в настоящее время неактивным (1)или активным (0).

RDB$SYSTEM_FLAG

SMALLINT

Признак — триггер определён пользователем (0) или системой (1 или выше).

RDB$FLAGS

SMALLINT

Внутреннее использование.

RDB$VALID_BLR

SMALLINT

Указывает, остаётся ли текст триггера корректным после последнегоизменения триггера при помощи оператора ALTER TRIGGER.

RDB$DEBUG_INFO

BLOB

Содержит отладочную информацию о переменных, используемых втриггере.

RDB$ENGINE_NAME

CHAR(63)

Имя движка для использования внешних триггеров. ОбычноUDR.

RDB$ENTRYPOINT

CHAR(255)

Имя точки входа в библиотеке, где находится этот триггер.

RDB$SQL_SECURITY

BOOLEAN

С какими правами выполняется триггер:

TRUE — с правами определяющего пользователя (SQL SECURITY DEFINER);
FALSE — с правами вызывающего пользователя (SQL SECURITY INVOKER);
NULL — привилегии выполнения наследуется от таблицы.

Для DDL триггеров тип триггера (RDB$TRIGGER_TYPE) получается путём побитового ИЛИ над фазой события (0 - BEFORE, 1 - AFTER) и всех перечисленных типов событий:

  • CREATE TABLE — 0x0000000000004002;

  • ALTER TABLE — 0x0000000000004004;

  • DROP TABLE — 0x0000000000004008;

  • CREATE PROCEDURE — 0x0000000000004010;

  • ALTER PROCEDURE — 0x0000000000004020;

  • DROP PROCEDURE — 0x0000000000004040;

  • CREATE FUNCTION — 0x0000000000004080;

  • ALTER FUNCTION — 0x0000000000004100;

  • DROP FUNCTION — 0x0000000000004200;

  • CREATE TRIGGER — 0x0000000000004400;

  • ALTER TRIGGER — 0x0000000000004800;

  • DROP TRIGGER — 0x0000000000005000;

  • CREATE EXCEPTION — 0x0000000000014000;

  • ALTER EXCEPTION — 0x0000000000024000;

  • DROP EXCEPTION — 0x0000000000044000;

  • CREATE VIEW — 0x0000000000084000;

  • ALTER VIEW — 0x0000000000104000;

  • DROP VIEW — 0x0000000000204000;

  • CREATE DOMAIN — 0x0000000000404000;

  • ALTER DOMAIN — 0x0000000000804000;

  • DROP DOMAIN — 0x0000000001004000;

  • CREATE ROLE — 0x0000000002004000;

  • ALTER ROLE — 0x0000000004004000;

  • DROP ROLE — 0x0000000008004000;

  • CREATE INDEX — 0x0000000010004000;

  • ALTER INDEX — 0x0000000020004000;

  • DROP INDEX — 0x0000000040004000;

  • CREATE SEQUENCE — 0x0000000080004000;

  • ALTER SEQUENCE — 0x0000000100004000;

  • DROP SEQUENCE — 0x0000000200004000;

  • CREATE USER — 0x0000000400004000;

  • ALTER USER — 0x0000000800004000;

  • DROP USER — 0x0000001000004000;

  • CREATE COLLATION — 0x0000002000004000;

  • DROP COLLATION — 0x0000004000004000;

  • ALTER CHARACTER SET — 0x0000008000004000;

  • CREATE PACKAGE — 0x0000010000004000;

  • ALTER PACKAGE — 0x0000020000004000;

  • DROP PACKAGE — 0x0000040000004000;

  • CREATE PACKAGE BODY — 0x0000080000004000;

  • DROP PACKAGE BODY — 0x0000100000004000;

  • CREATE MAPPING — 0x0000200000004000;

  • ALTER MAPPING — 0x0000400000004000;

  • DROP MAPPING — 0x0000800000004000;

  • ANY DDL STATEMENT — 0x7FFFFFFFFFFFDFFE.

Например, триггер

BEFORE CREATE PROCEDURE OR CREATE FUNCTION будет иметь тип 0x0000000000004090,
AFTER CREATE PROCEDURE OR CREATE FUNCTION — 0x0000000000004091,
BEFORE DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044200,
AFTER DROP FUNCTION OR DROP EXCEPTION — 0x00000000000044201,
BEFORE DROP TRIGGER OR DROP DOMAIN — 0x00000000001005000,
AFTER DROP TRIGGER OR DROP DOMAIN — 0x00000000001005001.

RDB$TYPES

Описание перечислимых типов данных.

Table 1. Описание столбцов таблицы RDB$TYPES
Наименование столбца Тип данных Описание

RDB$FIELD_NAME

CHAR(63)

Имя перечисляемого типа. Совпадает с именем столбца, для которогоопределён данный перечислимый тип.

RDB$TYPE

SMALLINT

Задаёт идентификатор для типа.Последовательность чисел является уникальной для каждого отдельного перечислимого типа:

0 — таблица;
1 — представление;
2 — триггер;
3 — вычисляемый столбец;
4 — проверка;
5 — процедура.

RDB$TYPE_NAME

CHAR(63)

Текстовое представление для перечислимого типа.

RDB$DESCRIPTION

BLOB TEXT

Произвольный текст примечания к перечислимому типу.

RDB$SYSTEM_FLAG

SMALLINT

0 — определён пользователем
1 и выше — системой.