我有一张表
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.请帮助。
答案 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到任何没有间隙的行。