MYSQL对表创建修改本表记录触发器之后报错

记录下在MYSQL中对刚刚insert的数据进行修改遇见的错误。

DROP TRIGGER IF EXISTS TRG_ts_identify_mapping;
delimiter //  
CREATE TRIGGER TRG_ts_identify_mapping BEFORE INSERT ON ts_identify_mapping FOR EACH ROW
BEGIN
UPDATE ts_identify_mapping
SET NEW.IS_DELE = '1'
WHERE id = NEW.ID ;
END;//
delimiter ; 

执行脚本正常能通过,但是在执行insert语句之后提示错误:

Can’t update table ‘ts_identify_mapping’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

谷歌度娘后得知原因为对刚刚insert的数据进行修改导致错误。修改字段应该使用set。
最终脚本为:

DROP TRIGGER
IF EXISTS TRG_ts_identify_mapping;
delimiter //  
CREATE TRIGGER TRG_ts_identify_mapping BEFORE INSERT ON ts_identify_mapping FOR EACH ROW
BEGIN
set NEW.IS_DELE = '1';
END;//
delimiter ; 

记录下此问题便于以后。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值