@entermix

Почему не срабатывает триггер MYSQL?

Есть следующие таблицы:

users
id, discount, ...
coupons
id, code, ...
discounts
id, user_id, discount, ...


Настроены следующие ограничения:

ALTER TABLE `discounts`
  ADD CONSTRAINT `discounts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;


При удалении записей из таблицы discounts срабатывает триггер:

CREATE TRIGGER `after_delete_discounts` AFTER DELETE ON `discounts`
 FOR EACH ROW BEGIN

	UPDATE `users` SET `discount` = (SELECT SUM(`discount`) FROM `discounts` WHERE `user_id` = `OLD`.`user_id`) WHERE `id` = `OLD`.`user_id` LIMIT 1;
  
END


Если я удаляю запись из таблицы discounts - триггер срабатывает
Если я удаляю запись из таблицы coupons, записи в таблице discounts удаляются, однако триггер не срабатывает.

Почему так?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
TheDeadOne
@TheDeadOne
Седой и строгий
Из документации:
Triggers are not activated by foreign key actions.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Viva Деньги Москва
от 150 000 до 200 000 руб.
Arkadium Ростов-на-Дону
от 120 000 руб.
21 авг. 2018, в 10:29
2000 руб./за проект
21 авг. 2018, в 09:20
5555 руб./за проект
21 авг. 2018, в 07:22
100000 руб./в месяц