我想编写一个触发器,如果插入新的数据库条目并且行数大于 3600 行,该触发器将删除最旧的数据库条目。不幸的是,第 7 行有一个错误(1064),但我不知道如何修复它。列时间如果使用mysql中的DATETIME定义。
CREATE TRIGGER maxRows BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
IF ((SELECT COUNT(*) FROM table1) = 3600) THEN
DELETE FROM table1
ORDER BY time ASC
LIMIT 1;
END IF;
END;
最佳答案
由于触发器中有一些 DML 语句,请尝试更改分隔符
DELIMITER $$
CREATE TRIGGER maxRows BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
IF ((SELECT COUNT(*) FROM table1) = 3600) THEN
DELETE FROM table1
ORDER BY time ASC
LIMIT 1;
END IF;
END;
END $$
DELIMITER ;
关于mysql - MaxRow触发器在mysql中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820039/