我试图在InnoDB 5.6.20中为MySql数据库创建一个触发器。我想对相同类型的触发器和开始/结束方法执行多个查询(解决办法?)似乎适用于这里的其他人:Multiple insert/update statements inside trigger?
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';是什么阻止了第一个例子中的触发器被创建?
发布于 2014-11-04 22:00:44
您需要定义;以外的另一个分隔符。
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会认为您的触发器定义结束于第一个;,这将使其不完整,从而丢失了begin的end。
https://stackoverflow.com/questions/26745816
复制相似问题