Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Механизм каскадных удалений / 3 сообщений из 3, страница 1 из 1
29.11.2003, 19:20
    #32338505
Nikles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм каскадных удалений
Типичная задача: при удалении записи в родительской таблице должны автоматически удаляться соответствующие записи в дочерней (например, при удалении накладной должны удаляться все пункты накладой). В принципе с помощью тригера решается элементарно, и обычно я так и делал. А тут, поленился создавать тригер и просто при создании внешнего ключала указал ON DELETE CASCADE.
Результат - записи в дочерней таблице удаляет - все ок, но в ней не срабатывает тригер AFTER DELETE, который должен в случае удаления записей произвести перерасчет в некоторой накопительной таблице.
Убираю ON DELETE CASCADE и реализовываю каскадные удаления с помощью тригера - все работает замечательно.
И теперь меня "гложет" вопрос почему так происходит? - ведь, как написано в документации, при указании ON DELETE CASCADE, фактически создается системный тригер, который выполняет удаления.
Грешил вначале на то что внешние ключи находятся вне контекста транзакций, но это не оправдывает такой логики работы, т.к. каскадные удаления, сделанные при указании ON DELETE CASCADE, происходят (я проверял) в контексте транзакций.
Кто нибудь может мне объяснить посчему так происходит? - оно конечно не принципиально, но все таки интересно понять логику :)

P.S. Да, совсем забыл - сервер Firebird 1.0
...
Рейтинг: 0 / 0
30.11.2003, 17:36
    #32338779
RubinDm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм каскадных удалений
Я повторил все то, что ты описал - все тригеры срабатывают на ура... :/
С уважением!
...
Рейтинг: 0 / 0
01.12.2003, 19:25
    #32339934
Nikles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм каскадных удалений
Извиняюсь - был неправ, действительно все работает (была ошибка в тригере).
Всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Механизм каскадных удалений / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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