我有以下触发器:
CREATE TRIGGER `delete_scores_trigger` AFTER DELETE ON `scores`
FOR EACH ROW BEGIN
UPDATE `users`
SET `darts_thrown` = ((SELECT `darts_thrown`
FROM (SELECT * FROM users) as utable
WHERE `id` = old.user_id) - old.darts_thrown)
WHERE `users`.`id` = old.user_id;
END
'得分' table有两个外键,如下所示:
ALTER TABLE `scores`
ADD CONSTRAINT `scores_game_id_foreign` FOREIGN KEY (`game_id`)
REFERENCES `games` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `scores_user_id_foreign` FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
我想更新字段' darts_thrown'在'用户'删除SCORE后。由于外键,每当“游戏”游戏时被删除,相应的分数'记录也将被删除。在该时刻之前或之前,'用户' dart_thrown'应该用触发器更新。
答案 0 :(得分:0)
https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html参考操作部分中有一个注释级联外键操作不会激活触发器。