mysql – 删除后触发不起作用

这是我的代码

CREATE TRIGGER `agent_maintenance` AFTER DELETE ON `users`
FOR EACH ROW BEGIN
INSERT INTO deleted_agents (agent_id, fullname, email, mobile_no, deleted) 
SELECT user_id, fullname, email, mobile_no, NOW() FROM user_profiles WHERE user_id = OLD.id;
END
//
DELIMITER ;

显然没有任何内容被插入到表deleted_agents中
但是,当我将事件更改为BEFORE DELETE时,它工作得很好.
谁知道什么是错的?

EDITED
是的,表user_profiles中有外键约束.
基本上,当表用户的一行被删除时,它将删除表user_profiles上的相应行.

所以我假设在任何外键约束操作之前首先执行触发器

执行此操作的最佳方法是在表user_profiles本身上使用AFTER DELETE触发器.
不幸的是,mysql dosent激活了外键约束的触发器

最佳答案 可能是因为删除了行,user_profiles表上的级联删除触发器已执行且WHERE子句找不到user_id?

点赞