#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 子句中指定目标表“成员”进行更新 [重复]

MySQL错误1093 - 无法在FROM子句中指定更新的目标表

错误 1093:MySQL 无法在 FROM 子句中指定更新的目标表