0

我有一张桌子

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.请帮忙。

4

1 回答 1

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 到没有间隙的任何值。

于 2013-02-02T04:33:44.190 回答