我正在编写一个连接到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编号?
答案 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。