2014-11-04 52 views
1

我想在MySql 5.6.20中创建InnoDB数据库的触发器。我想执行多个查询,对同一类型的触发器和开始/结束方法(?解决方法)似乎为他人在这里工作:Multiple insert/update statements inside trigger?MySQL多触发器(使用BEGIN/END)无法创建

CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW BEGIN 
    UPDATE month_avg set month = '9' where id = '585'; 
    END; 

这将失败与SQL语法错误。如果我删除BEGINEND;扳机被添加和功能正常:

CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW 
    UPDATE month_avg set month = '9' where id = '585'; 

什么在阻止触发器在第一个例子中被创造出来的?

回答

2

您需要定义除;之外的另一个分隔符。

delimiter | 
CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW BEGIN 
    UPDATE month_avg set month = '9' where id = '585'; 
    END 
| 
delimiter ; 

否则DB会认为你的触发器定义在第一;结束这将使它不完整的,缺少endbegin