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 回答