MySQL触发器在插入后删除旧行

Free-Thinker 阅读:66 2024-10-25 08:56:14 评论:0

这个 MySQL 触发器有什么问题?插入后,我试图删除超过 1 个月的行。此触发器仅删除最后插入的行。

CREATE TRIGGER `users_logins_delete_olds`  
AFTER INSERT ON `users_logins` FOR EACH ROW  
BEGIN 
    DELETE FROM users_logins WHERE user_id = new.user_id AND timestamp < (NOW() - INTERVAL 1 MONTH); 
END 

请您参考如下方法:

您不能从实现触发器的同一个表中删除行。
因为在插入时 mysql 锁定表并且不能删除行,因为删除需要锁定所以它是死锁情况,这就是为什么 mysql 不允许这样做。


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号