mysql触发器报错求解,小白求助

触发器语句如下:

CREATE TRIGGER users_login AFTER INSERT ON users_online FOR EACH ROW

UPDATE phone_users
SET isdisable = NEW.isdisable
WHERE
phone = NEW.phone;

插入语句如下:

insert into criminal_families_relationship (`user_id`,`user_bind_id`,`user_name`) select '123','456','tom' from dual where exists (select * from criminal_info where criminal_info.criminal_id='1236');

执行插入语句时有如下报错:

1442 - Can't update table 'phone_users' in stored function/trigger because it is already used by statement which invoked this stored function/trigger

插入时不带去重则不会报错,求解是什么问题

你这个exists 语句无效吧,exists要跟外面的表关联才有意义。

第一:插入语句制定插入字段个数,括号里不需要加单引号包裹着字段名吧!(`user_id`,`user_bind_id`,`user_name`) 

第二:插入语句应该需要加values进行修饰的吧!

以上是个人看法,如无效,请忽略,有效,请采纳!

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

 

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y