Есть следующие таблицы:
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 удаляются, однако триггер не срабатывает.
Почему так?