MaxRow触发器无法在mysql中运行

时间:2017-03-15 20:27:34

标签: mysql mysql-error-1064

我想写一个触发器,如果​​插入一个新的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;

1 个答案:

答案 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 ;