这个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
答案 0 :(得分:3)
您无法从实现触发器的同一表中删除行。 因为在插入mysql会锁定表并且无法删除行因为delete需要锁定所以它的死锁情况,这就是mysql不允许这样做的原因。
答案 1 :(得分:0)
尝试DATE_SUB(NOW(),INTERVAL 1 MONTH)