寫在前面: 我是 「揚帆向海」,這個昵稱來源于我的名字以及女朋友的名字,我熱愛技術、熱愛開源、熱愛編程,
技術是開源的、知識是共享的,
這博客是對自己學習的一點點總結及記錄,如果您對 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即可避免這個報錯,

如果覺得文章對你有點幫助,請微信搜索「 程式猿編程 」第一時間閱讀!
搬磚的道路上我們一起努力,用雙手敲出我們的未來!

由于水平有限,本博客難免有不足,懇請各位大佬不吝賜教!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/111300.html
標籤:其他
