【问题标题】:1093 - You can't specify target table 'is_items' for update in FROM clause1093 - 您不能在 FROM 子句中指定目标表 'is_items' 进行更新
【发布时间】:2015-06-08 02:03:00
【问题描述】:

我正在尝试按顺序设置“id”列的值,但我的查询不起作用:

UPDATE is_items SET id=(SELECT max(id)+1 FROM is_items WHERE id<160)

错误:

[Err] 1093 - You can't specify target table 'is_items' for update in FROM clause

我看到其他关于相同问题的问题,但我不能很好地理解解决方案......

提前致谢,

国王的问候

【问题讨论】:

标签: mysql mysql-error-1093


【解决方案1】:

您可以通过使用用户定义的变量分两步完成:

set @id := (SELECT max(id)+1 FROM is_items WHERE id<160);
UPDATE is_items SET id=@id;

【讨论】:

  • @vince 是的 - 这就是 OP 的查询所做的。我刚刚解决了语法问题(不是任何潜在的逻辑问题)
猜你喜欢
  • 2016-05-19
  • 2015-07-11
  • 1970-01-01
  • 2018-06-04
  • 2012-01-10
  • 2013-04-09
  • 1970-01-01
  • 2018-11-15
  • 2018-10-25
相关资源
最近更新 更多