2012-02-24 8 views
0

誰かがこのトリガステートメントで何が間違って教えてくださいできますか?CantはMysqlトリガステートメントを正しく取得

DELIMITER // 

CREATE TRIGGER something AFTER INSERT ON sometable 
FOR EACH ROW 
BEGIN 
DECLARE var INT DEFAULT 0; 
SET var = SELECT COUNT(*) FROM anothertable; 
IF var=0 THEN 
INSERT INTO anothertable values(`x`,`y`,`z`); 
END IF; 
END// 

私は構文エラーがあるというエラーを得続ける...

+1

は、これらのバッククォート( ')または単一引用符があります( ')の周りにx、y、zの順である。それはバックティックのように見えますが、引用符でなければなりません。 –

+0

私も一重引用符をつけています... doesnt work .. –

+0

UNIQUEインデックスやその他の整備士のように見えるものが翻訳に失われているような気がするので、本当の例を投稿できますか?部分的なデータでアドバイスすることはできません。 –

答えて

1

括弧内にSELECT文を入れてみてください:

DELIMITER // 

CREATE TRIGGER something AFTER INSERT ON sometable 
FOR EACH ROW 
BEGIN 
    DECLARE var INT DEFAULT 0; 
    SET var = (SELECT COUNT(*) FROM anothertable); 
    IF var=0 THEN 
     INSERT INTO anothertable values('x','y','z'); 
    END IF; 
END// 
+0

それはうまくいくと思われました:) –