2017-03-15 78 views
0

我想编写一个触发器,如果​​插入了一个新的数据库并且行数大于3600行,则会删除最老的数据库条目。不幸的是,第7行有一个错误(1064),但我不知道如何解决它。列时间,如果通过在MySQL中使用DATETIME定义。MaxRow触发器在mysql中不工作

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

请包括完整的错误消息。 – Alfabravo

+0

消息:“SQL错误(1064):您的SQL语法错误;请查看与您的MySQL服务器版本相对应的手册,以获取在第7行附近使用的正确语法 –

回答

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 ;