问题很简单,删除table
所以如果表是:
| id | name |
| 1 | aaaaa |
| 2 | bbbbb |
| 3 | aaaaa |
输出结果为:
| id | name |
| 1 | aaaaa |
| 2 | bbbbb |
这是我正在使用的查询:
delete t1
from Table t1
, Table t2
where t1.name = t2.name
and t1.Id > t2.Id
以上查询工作正常。
但是,我稍微修改了一下查询:
delete
from Table
where Id in (select t1.Id from Table t1, Table t2 where t1.name = t2.name and t1.Id > t2.Id)
执行时,错误消息为“错误代码:1093。您无法在FROM子句中为更新指定目标表'表'”
我的问题是为什么这个子查询无法正确执行?场景背后的故事是什么
提前感谢。
答案 0 :(得分:3)
因为选择表会对记录设置读锁定,然后您尝试更改。