2016-08-07 5 views
1

私はaltervistaでmysqlを使用していますが、このトリガーを行いましたが、試してみると "#1064 - SQL構文にエラーがあります。右の構文は5行目で「」の近くに使用する」PLSのに役立つ、altervistaのトリガーmysql

CREATE TRIGGER increase 
AFTER INSERT ON tableA 
FOR EACH ROW 
BEGIN 
    DECLARE counter INTEGER; <---- line 5 

    SELECT count(*) 
    INTO counter 
    FROM tableC; 

    IF(counter == 0) THEN 
     UPDATE tableB 
     SET num = num + 1; 
    END IF; 
END 

答えて

0

あなたがchange the delimiterに必要 - MySQLが最初に見ています 『;』 CREATE TRIGGERステートメントの終わりとして指定します。私はそれを変更

/* Change the delimiter so we can use ";" within the CREATE TRIGGER */ 
DELIMITER $$ 

CREATE TRIGGER increase 
BEFORE INSERT ON tableA 
FOR EACH ROW BEGIN 
    DECLARE counter INTEGER; 

    SELECT count(*) 
    INTO counter 
    FROM tableC; 

    IF(counter == 0) THEN 
     UPDATE tableB 
     SET num = num + 1; 
    END IF; 
END$$ 
/* This is now "END$$" not "END;" */ 

/* Reset the delimiter back to ";" */ 
DELIMITER ; 
+0

を、それは同じ問題「#1064を持っている - あなたはあなたのSQL構文でエラーが発生している。権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください。

これを試してみてください'5行目'近くで使用する – Marcoluz

+0

デリミタを使用してaginを試してみよう – ashkufaraz