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

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


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