如何为mysql中的字段提供自动编号?

use*_*977 5 mysql

我想为MySQL数据库中的字段提供自动编号?

这就像

我有字段名称,编号

name       number
--------------------
aaaa          1
bbbb          2
cccc          3
dddd          4
eeee          5

现在我要删除第3个字段(即cccc)删除后,如果我选择了该表中的所有行,我希望得到输出像

name      number
-----------------------
aaaa        1
bbbb        2
dddd        3
eeee        4

谁能为此提供更好的解决方案?

Alm*_* Do 3

首先:为什么要这样做?看来您的数字序列通常是主键,这意味着 - 它本身没有其他含义。因此,您无需担心其中的间隙 - 让 DBMS 为您处理。

如果您仍想重新排列号码,可以通过以下方式执行此操作:

UPDATE t CROSS JOIN (SELECT @i:=0) AS init SET t.number=@i:=@i+1
Run Code Online (Sandbox Code Playgroud)

-但是,真的,请考虑一下 - 即,如果您真的需要这样做。