mysql error 1093 解決辦法


mysql> select * from t;  
+----+  
| id |  
+----+  
| 1 |  
| 2 |  
| 3 |  
| 4 |  
| 5 |  
| 6 |  
| 7 |  
| 8 |  
| 9 |  
| 10 |  
+----+  
10 rows in set (0.00 sec) 
mysql> delete from t where id in (select id from t where id < 5);  
ERROR 1093 (HY000): You can't specify target table 't' for update in FROM clause  
mysql> 

這樣刪除將報錯,更改SQL語句為

mysql> delete  from t where id in (select * from (select id from t where id < 5) tmp);  
Query OK, 4 rows affected (0.00 sec)  

以這樣的形式即可刪除。

再優化之,改為表連接模式:

mysql> delete t from t join (select id from t where id < 5) tmp on t.id=tmp.id;  
Query OK, 4 rows affected (0.01 sec) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM