博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中更新或者删除语句中子语句不能操作同一个表You can't specify target table 'test' for update in FROM clause...
阅读量:6433 次
发布时间:2019-06-23

本文共 715 字,大约阅读时间需要 2 分钟。

问题描述:有个数据表test,有个字段value,如下

mysql> select * from test;

+----+------------------------------------+
| id | value |
+----+------------------------------------+
| 3 | 3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| 4 | 4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| 5 | 5aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| 6 | 6aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| 7 | 7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |

如果执行如下sql语句会报错

delete from test where id=(select min(id) from test);

报的错误是You can't specify target table 'test' for update in FROM clause。

原因是不能在操作一张表的同时更新或者删除这张表的内容。

解决方法如下:(3个步骤)

create table tmp as select min(id) as col1 from test;

delete from test where id =(select col1 from tmp);

drop table tmp

这时又遇到一个问题,如何在php中一次执行多个sql语句(当然也可以分3次执行),此问题待查

转载地址:http://mzxga.baihongyu.com/

你可能感兴趣的文章
PDO 用法学习
查看>>
对数据库索引的理解
查看>>
JS--回到顶部代码
查看>>
WCF4.0 –- RESTful WCF Services (1) (入门)
查看>>
酷毙了!三种风格的全屏幻灯片效果【附源码下载】
查看>>
File类的基本操作之读出所有目录路径
查看>>
MVC把随机产生的字符串转换为图片
查看>>
理解OAuth 2.0
查看>>
根据百度地图获取地址商圈的工具类
查看>>
[Android Studio] Android Studio中查看类的继承关系
查看>>
制作引导页[2]
查看>>
浅谈UML的概念和模型之UML九种图
查看>>
集合的枚举和排序
查看>>
iOS设计模式之单例模式
查看>>
mac下的virtualbox启动失败处理
查看>>
开机就提示“请安装TCP/IP协议,error=10106”的解决的方法
查看>>
hdu-----(1151)Air Raid(最小覆盖路径)
查看>>
实现开启和关闭android移动网络(转)
查看>>
【BZOJ】1621: [Usaco2008 Open]Roads Around The Farm分岔路口(dfs)
查看>>
第12届北师大校赛热身赛第二场 C. 组合数
查看>>