如何在删除行时更改自动增量主键值?

0 mysql

我有一个问题,每当我删除一行时,与该行对应的行ID都会被删除,但我不想这样做.我想要的是如果删除任何行,那么该行之后的其他行应该移位一个(删除的行数)位置.

例:

假设有一个用户表(id和名称)

id(auto incremented primary key)          name
1                                         xyz
2                                         aaa
3                                         ray
4                                         mark
5                                         allen
Run Code Online (Sandbox Code Playgroud)

现在删除行id=3和表应该是这样的

id(auto incremented primary key)          name
1                                         xyz
2                                         aaa
3                                         mark
4                                         allen
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

Kon*_*rak 18

没有!不要这样做!

您的自动增量ID是行的IDENTITY.其他表使用此ID来引用某一行.如果更新ID,则必须更新引用此行的所有其他表,这不是关系数据库的所有点.

此外,从来没有必要这样做:你不会快速耗尽自动增量列(如果你这样做,只需选择一个更大的数据类型).

自动增量ID是纯技术数字,您的应用程序用户永远不应该看到或使用它.如果要向用户显示标识符,请添加另一列!