powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / уточните работу тригеров
2 сообщений из 2, страница 1 из 1
уточните работу тригеров
    #38650220
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раз есть тригер ДО и ПОСЛЕ значит между ними должна быть принципиальная разница....

1)в тригере до, можно менять значения полей(вставка, обновление)
это пожалуй единственное в чом я уверен.

ВОПРОСЫ

2)если стоит каскадное удаление из связаной таблицы, в тригере после уже эти связаные записи не доступны?!

3)если действие (вставка, удаление, обновление) не произошло, что будет с тем что намутил тригер ДО
Например, в тригере до удаления, мы пишем лог - сколько дочерних элементов у него было.
если же реального удаления не произошло по какойто причине, можно быть увереным или нет что и вставка в таблицу логов тоже будет отменена???

4)может ктото по русски, т.к. по английски в документации не сформировалось понимания точного - расказать.
что именно база делает при изменении данных, если есть оба типа тригеров.
...
Рейтинг: 0 / 0
уточните работу тригеров
    #38650265
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще что у мне надо.

есть таблица
parents(pk,name)
1 a
2 b
3 c

childs(pk,fk,number) - referrence on parents on delete cascade
1 1 0
2 1 1
3 2 0
4 3 0

locks(pk=fk) - referrence on parents on delete restrict
3

хочу сделать
delete from parents where id = 1 or id =3

третья запись в родителях не удалиться, ибо лок стоит на неё, а вот первая и её потомки удаляться.

всё круто работает.

но теперь при удалении родителя, мне нужно в логи записать что удалено было в виде
имя_родителя + номер потомка

должно стать
logs(pk,name,number)
1 a 0
2 a 1
ибо родитель3 не удалился изза лока.

и вот думаю, как это сделать без костылей через тригеры.
в тригере delete after не найду потомков
в тригере delete before - всё круто, но ведь логи я сделаю для родителя3, а он не удалился.

как быть??? или я что-то упускаю
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / уточните работу тригеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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