最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

You can't specify target table 'xxx' for update in FROM clause解决

数据库 太平洋学习网 浏览 评论

mysql在delete删除数据的时候报了“[Err] 1093 - You can't specify target table 'toparticle' for update in FROM clause”这样的错误,报这种mysql错误是mysql特有的,它说不能将Select查询出同一张表的字段进行update更新

按我们正常的思想,oracle,myssql等数据库都是没有啥问题的,偏偏就mysql会报这种“You can't specify target table 'xxx' for update in FROM clause”错误,小编的sql语句如下所示:

delete from toparticle where top_time in(select min(top_time) from toparticle)

那么该如何解决上述这种错误呢?我们只需要添加一张中间表即可,将上述sql语句改成如下这样:

delete from toparticle where top_time in(select * from (select min(top_time) from toparticle) as tp)

要注意的是:中间表需要改成“select *”的形式,然后“as tp”将“select min(top_time) from toparticle”的结果作为一张别名表来查询即可。

网上的很多资料都是复制粘贴,比较的垃圾,小编也是花了很长时间才解决这样的问题,所以特意作为笔记记录下来。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/mysql_oracle/774.html

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论