MySql报错 1093 - You can’t specify target table xxx for update in FROM clause

   日期:2020-09-23     浏览:99    评论:0    
核心提示:如果觉得文章对你有点帮助,请微信搜索「 程序猿编程 」。搬砖的路上一起努力!

写在前面: 我是 「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的

这博客是对自己学习的一点点总结及记录,如果您对 Java算法 感兴趣,可以关注我的动态,我们一起学习。

用知识改变命运,让我们的家人过上更好的生活

在开发中MySQL遇到了这样的一个错误 1093 - You can’t specify target table 'person' for update in FROM clause,下面我就以力扣的一道题目为例进行分析。

文章目录

      • 一、题目来源
      • 二、错误分析
      • 三、解决办法

一、题目来源

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+

例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+

提示

  • 执行 SQL 之后,输出是整个 Person 表。
  • 使用 delete 语句。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-duplicate-emails
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、错误分析

这是因为MySQL不允许同时更新和删除一张表,也就是你不能以一个查询的结果为条件 进行修改或删除

三、解决办法

使用中间表将查询结果再次SELECT即可避免这个报错。

如果觉得文章对你有点帮助,请微信搜索「 程序猿编程 」第一时间阅读!

搬砖的道路上我们一起努力,用双手敲出我们的未来!

由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服