2017-03-15 22 views
0

新しいトリガーが挿入され、行数が3600行を超える場合、最も古いDB項目を削除するトリガーを作成したいと考えました。残念ながら、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構文にエラーがあります。正しい構文が" at line 7 "の近くで使用するには、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 –

答えて

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 ; 
関連する問題