0

我正在尝试按顺序设置“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

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

提前致谢,

国王问候

4

1 回答 1

0

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

set @id := (SELECT max(id)+1 FROM is_items WHERE id<160);
UPDATE is_items SET id=@id;
于 2015-04-03T00:07:15.117 回答