我想写一个触发器,如果插入一个新的DB条目并且rowcount大于3600行,它将删除最旧的DB条目。不幸的是,第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;
答案 0 :(得分:0)
由于您的触发器中有一些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 ;