mysql将一个项ID设置为auto_increment max id

时间:2013-06-28 08:20:46

标签: mysql

例如,表格中有几个项目

 id |name|info
 1  |Jim |Male
 2  |Rob |Male

表的id是auto_increment,现在我想将Jim的行更新到Rob的底部,并获得最新的id,又名

 id |name|info
 2  |Rob |Male
 3  |Jim |Male

并获取(3)的id,sql表达式是什么?

2 个答案:

答案 0 :(得分:4)

由于您无法在同一更新查询中选择max(id),因此必须将max(id)定义为变量。您需要的查询:

SET @max = (SELECT max(`id`) FROM `table` FOR UPDATE);
UPDATE `table` SET `id` = @max+1 WHERE `name` = "Jim";

编辑 :您不应该更新ID,因为它是唯一标识符。如果要使用排序方法,则应添加整数列“position”。

答案 1 :(得分:1)

没有自动增量列的更新,您可以删除吉姆斯行然后再次插入它,它将是id = 3

 DELETE FROM `table` where id = 1

然后

 INSERT INTO `table` (name , info) VALUES ('jim' , 'male')