2017-03-15 60 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 ;