MySQL5.7 支持一个表有多个INSERT/DELETE/UPDATE触发器

 我来答
蜒霞乇
2016-09-29 · TA获得超过122个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:336万
展开全部
楼主写的触发器明显错了吗,既然你是想通过更新mst_officecurrency表来达到更mst_office表的目的,那么首先下面语句是多余的,它应该是等你建好了触发器之后再在SQL窗口中写的:
update `mst_generalsetup` set `CurrencyName`=NEW.OfficeCurrencyName where `CurrencyName`=OLD.OfficeCurrencyName;
而且如果是在SQL窗口中那这样写就错了,你应该写成例如:
update mst_generalsetup set OfficeCurrencyName=新值 where OfficeCurrencyName=原来的值;
你得提供一个新值和旧值啊,不然你写了那么多new,old值,人家电脑知道你new值为多少,old值又为多少啊,所以正确的触发器是下面的写法:
create trigger t_AfterUpdate_on_mst_officecurrency
after update on mst_officecurrency
for each row
begin
update mst_office set Currency=:new.OfficeCurrencyName where Currency=:old.OfficeCurrencyName;
end;
/
创建完触发器之后再写SQL语句对mst_generalsetup表进行更新:
SQL>update mst_generalsetup set OfficeCurrencyName=新值 where OfficeCurrencyName=原来的值;

总体上就是这样,还有就是创建触发器的时候你在表名和列名前面不要加单引号,会报错的,如果还有什么问题再追问我就好了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式