#1093 - 您不能在 FROM 子句中指定目标表 'tbl' 进行更新 [重复]
Posted
技术标签:
【中文标题】#1093 - 您不能在 FROM 子句中指定目标表 \'tbl\' 进行更新 [重复]【英文标题】:#1093 - You can't specify target table 'tbl' for update in FROM clause [duplicate]#1093 - 您不能在 FROM 子句中指定目标表 'tbl' 进行更新 [重复] 【发布时间】:2018-06-04 21:27:57 【问题描述】:无法执行以下查询
Update tbl SET alias_seq= (Select seq from tbl where analysed_object =
'data' order by seq LIMIT 1)
遇到错误
#1093 - 您不能在 FROM 子句中指定目标表 'tbl' 进行更新
【问题讨论】:
【参考方案1】:您无法更新子查询引用的同一数据源中的行。
将您的查询修改为此
UPDATE tbl SET alias_seq= (SELECT * FROM (Select seq from tbl where analysed_object = 'data' order by seq LIMIT 1) as X)
这里嵌套的子查询创建了一个临时表。因此,它不算作您尝试从中更新数据的同一个表。换句话说,在mysql
中,您不能修改在SELECT
部分中使用的同一个表。
您可以参考这里了解更多信息 UPDATE Syntax。
【讨论】:
谢谢,它对我有用 但它正在为所有记录更新相同的 id 现在怎么样了? 问题已解决,还需要 1 个 where 子句用于外部查询以上是关于#1093 - 您不能在 FROM 子句中指定目标表 'tbl' 进行更新 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL #1093 - 您不能在 FROM 子句中指定目标表“赠品”进行更新
#1093 - 您不能在 FROM 子句中指定要更新的目标表 [重复]
ERROR 1093 (HY000): 您不能在 FROM 子句中指定要更新的目标表
无法运行查询给出 mySQL 错误 #1093 - 您无法在 FROM 子句中指定目标表“成员”进行更新 [重复]