MySQL列ID号

时间:2015-02-11 07:57:27

标签: java mysql jdbc

我正在编写一个连接到Java数据库的简单MySQL程序。 用户可以选择以下任何选项: -

1) View the contents of the database
2) Add an entry to the database
3) Remove an entry from the database

问题是当用户选择删除选项时,会出现一个提示,询问他们要删除哪一行。

如果有10行且用户选择第5行,则此行为 删除,但当他们选择再次查看数据库内容时 第一列ID编号如下运行

1
2
3
4
6
7
8
9
10

即。编号丢失5.我希望在删除第5行后编号会向下移动,即转到

1
2
3
4
5
6
7
8
9

希望这是有道理的。是否有一种方法可以自动更新列ID编号?

2 个答案:

答案 0 :(得分:0)

没有任何机制可以在删除后自动重新编号ID,因为这是一种非常不需要的行为。数据库记录的ID通常用于标识独立于其内容的记录。所以它不应该随着时间的推移而改变。有关更多信息,请参阅Persistent Object Identifier

答案 1 :(得分:0)

我不认为mysql会这样做你想要做什么。解决方法是删除行后更新ID

delete from tableName where id=5;
update tableName set id=id-1 where id > 5 order by id;

其中5是要删除的id在两个查询中用您的deletedId变量替换5。