9

MySQL でトリガーを作成したいと考えています。次のコマンドを実行します。

mysql> delimiter //
mysql> CREATE TRIGGER before_insert_money BEFORE INSERT ON money
    -> FOR EACH ROW
    -> BEGIN
    -> UPDATE accounts SET balance=10.0;
    -> END;
    -> //
Query OK, 0 rows affected (0.19 sec)

しかし、phpmyadmin で上記の SQL を実行すると、次のエラーが発生します。

#1064 - You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to 
use near '' at line 4 

ここで何が問題なのですか?トリガーを作成するにはどうすればよいですか?

4

1 に答える 1

13

これは、CLI で行ったように区切り文字を一時的に変更しなかったことが原因です。次のいずれかを試してください。

CREATE TRIGGER before_insert_money BEFORE INSERT ON money
FOR EACH ROW UPDATE accounts SET balance=10.0;

また

delimiter //
CREATE TRIGGER before_insert_money BEFORE INSERT ON money
FOR EACH
ROW
BEGIN
    UPDATE accounts SET balance=10.0;
END;
//
delimiter ;

参照:この質問この質問.

于 2013-07-25T22:16:50.660 に答える