mysql error code 1093 报错

案例中的两个表格
在这里插入图片描述
在这里插入图片描述

error code 1093 报错
如果是子查询操作的表和更新操作是同一张表就会出现这个问题

案例:把“客服部”的“张一鸣”的工资金额修改为4000 元(用2个表关联)
错误演示:

update staff set salary=4000where staffname in (select e.staffname from staff e join (select * from depart where departname='客服部') a
on e.departid=a.departid 
where e.staffname = '张一鸣') ;

执行上面的sql语句后数据库报错提示:


Error Code: 1093. You can't specify target table 'staff' for update in FROM clause	0.000 sec ```

解决方式:给子查询再套一层

update staff set salary=4000wherestaffname in(select s.staffname from(select e.staffname from staff e join (select * from depart where departname='客服部') a
on e.departid=a.departid where e.staffname = '张一鸣')s);

欧克


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部