MySQL多触发器(使用BEGIN/END)无法创建
问题描述:
我想在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语法错误。如果我删除BEGIN
和END;
扳机被添加和功能正常:
CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog
FOR EACH ROW
UPDATE month_avg set month = '9' where id = '585';
什么在阻止触发器在第一个例子中被创造出来的?
答
您需要定义除;
之外的另一个分隔符。
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会认为你的触发器定义在第一;
结束这将使它不完整的,缺少end
为begin