Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 1 check constraint -> 2 trigger`a / 5 сообщений из 5, страница 1 из 1
27.03.2004, 22:21
    #32459688
oz
oz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1 check constraint -> 2 trigger`a
Задача - вытянуть DDL на создание CHECK constraints. Использую запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
   r.rdb$relation_name    "TABLE_NAME" ,
   r.RDB$CONSTRAINT_NAME  "NAME" ,
   t.rdb$trigger_source    "CODE" 
FROM
   rdb$relation_constraints r
   JOIN rdb$check_constraints cc ON (r.RDB$CONSTRAINT_NAME=cc.rdb$constraint_name)
   JOIN rdb$triggers t ON (cc.rdb$trigger_name=t.rdb$trigger_name)
WHERE
   r.RDB$CONSTRAINT_TYPE = 'CHECK'
ORDER BY
   r.rdb$relation_name

в выходном наборе каждая запись продублирована. Посмотрел на таблицу RDB$CHECK_CONSTRAINTS - действительно, каждому значению RDB$CONSTRAINT_NAME соответствует 2 записи, причем ссылаются они на триггеры, которые отличаются только значением поля RDB$TRIGGER_TYPE (таблица RDB$TRIGGERS) - значения 1 и 3. Я могу конечно переписать запрос и в нем вытягивать только те записи, которые ссылаются на триггер с типом 1 (например), но не хочу делать это слепо. Кто - нить знает, что это за типчик такой?
...
Рейтинг: 0 / 0
29.03.2004, 10:35
    #32460212
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1 check constraint -> 2 trigger`a
Код: plaintext
1.
2.
3.
4.
5.
 1   BEFORE INSERT  PRE_STORE 
 2   AFTER INSERT  POST_STORE 
 3   BEFORE UPDATE  PRE_MODIFY 
 4   AFTER UPDATE  POST_MODIFY 
 5   BEFORE DELETE  PRE_ERASE 
 6   AFTER DELETE  POST_ERASE 
...
Рейтинг: 0 / 0
29.03.2004, 10:47
    #32460241
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1 check constraint -> 2 trigger`a
Когда ты создаёшь CHECK CONSTRAINT, то сервер для поддержания оной, создаёт два триггера (системных). Один на PRE_STORE (RDB$TRIGGER_TYPE = 1), другой на PRE_MODIFY (RDB$TRIGGER_TYPE = 3). Они соответствуют событиям BEFORE INSERT и BEFORE UPDATE соответственно.
...
Рейтинг: 0 / 0
29.03.2004, 15:24
    #32460873
oz
oz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1 check constraint -> 2 trigger`a
Кул, спасибо. Если можно, ссылку, по которой можно это почитать. Может там еще чего умного написано?
...
Рейтинг: 0 / 0
29.03.2004, 15:33
    #32460888
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1 check constraint -> 2 trigger`a
news://news.demo.ru/epsylon.public.interbase
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 1 check constraint -> 2 trigger`a / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]