删除中间行后如何设置自动增量值

时间:2013-02-02 04:25:26

标签: php

我有一张表

id  paper_title
1   General English1
2   General English2
3   General English3
4   General English4
5   General English5
6   General English6
7   General English7
.
.
.
.
100 General English100.

假设如果删除第4行和第5行,是否可以更新通用英语6和通用英语7的ID分别设置为4,5如果我在中间删除一行或启动id应该像1 2那样连续重置3 4 5 .................. 100.请帮助。

1 个答案:

答案 0 :(得分:1)

确定要删除的行的id(让我们称之为id $foo)。然后执行

UPDATE tbl SET id = id-1 WHERE id > $foo

获得最高id并将其称为$max

SELECT MAX(id) FROM tbl

然后设置新的自动增量值:

ALTER TABLE tbl AUTO_INCREMENT = $max+1

对您删除的每一行执行此操作。我确定希望id不是你的主要关键。无论如何,对于您的潜在问题肯定有更好的解决方案。通常不需要将数据库表中的行编号为1到任何没有间隙的行。