InterBase: тормозология и глюконавтика
Страница 33. Системные таблицы. Часть 5


   RDB$TRIGGERS - триггеры.

RDB$TRIGGER_NAME - имя триггера.
RDB$RELATION_NAME - имя таблицы или вьюшки, на которой он висит (то есть ссылка на RDB$RELATIONS).
RDB$TRIGGER_SEQUENCE - номер позиции триггера. То, что пишется после слова position в операторе create trigger. Триггеры срабатывают в порядке возрастания этих номеров. В пятёрке, если номера совпадают, то в порядке алфавитного возрастания имени, в чётверке - неизвестно.
RDB$TRIGGER_TYPE - 1 = before insert, 2 = after insert, 3 = before update, 4 = after update, 5 = before delte, 6 = after delete.
RDB$TRIGGER_SOURCE - исходный текст триггера (начиная после слова "as"). У системных триггеров может быть null.
RDB$TRIGGER_BLR - результат компиляции предыдущего поля в BLR.
RDB$DESCRIPTION - описание, как обычно, null.
RDB$TRIGGER_INACTIVE - признак неактивности триггера.
RDB$SYSTEM_FLAG - признак того, что триггер системный (1 = да, 0 или null = нет).
RDB$FLAGS - в документации рядом с этим полем оставлено пустое место.
RDB$TRIGGER_MESSAGES - малопонятная таблица с какими-то сообщениями приписанными к триггерам. Изначально заполнена ссылками на несколько системных триггеров. Как и для чего можно задействовать эти сообщения мне пока не понятно.
RDB$TRIGGER_NAME - имя триггера.
RDB$MESSAGE_NUMBER - номер сообщения.
RDB$MESSAGE - текст сообщения согласно документации. Реально - какой-то идентификатор. У записей с одинаковыми идентификаторми в этом поле так же совпадают поля номера. Что бы это значило?

RDB$TYPES - типы для перечислений кодировок, сравнений символов, типов триггеров и прочих подобных вещей. Точнее, здесь перечисляются списки допустимых числовых кодов и немного более понятные идентификаторы к ним. В общем, если данный документ в каких-то кодах расходится с вашей базой, загляните в эту таблицу - должна быть более точная информация.

RDB$FIELD_NAME - имя поля. Обычно - RDB$... типа integer или smallint.
RDB$TYPE - число, одно из возможных значений для поля.
RDB$TYPE_NAME - идентификатор для этого числа в этом поле.
RDB$DESCRIPTION - описание, как обычно, null.
RDB$SYSTEM_FLAG - признак системности, везде 1.
RDB$USER_PRIVILEGES - права пользователей на объекты БД. То, что даётся через оператор grant и отнимается через revoke.

RDB$USER - пользователь, которому даются права.
RDB$GRANTOR - от кого даются права.
RDB$PRIVILEGE - какие именно права. Хотя поле может хранить до 6 символов, как правило порождается по отдельной записи на каждое право. Сами права кодируются буквами S=select, I=insert, U=update, D=delte, X=execute, R=reference, M=member of (для ролей?).
RDB$GRANT_OPTION - есть ли право дальнейшей передачи.
RDB$RELATION_NAME - на что даются права. Может быть именем отношения, процедуры или роли.
RDB$FIELD_NAME - имя поля, если права даются не на весь объект, описанный предыдущим полем.
RDB$USER_TYPE - тип того, кто RDB$USER. Возможные значения можно выяснить через select * from rdb$types where rdb$field_name like '%OBJECT_TYPE%'.
RDB$OBJECT_TYPE - тип того, кто RDB$RELATION_NAME.
RDB$VIEW_RELATIONS - соответствие между вьюшками и их базовыми оношениями . Для каждой вьюшки заводится столько записей, сколько таблиц упомянуто во фразе from её главного select'а.
RDB$VIEW_NAME - имя представления
RDB$RELATION_NAME - имя базового отношения
RDB$VIEW_CONTEXT - номер базового отношения для данного представления
RDB$CONTEXT_NAME - укороченное имя таблицы в части from оператора select.
 
 
« Предыдущая статья