SQL ID值自动向上移动

时间:2014-10-08 19:36:44

标签: php mysql sql sql-server

我有一个自动递增ID列的表。我希望我的数据库自动更改ID值,因此ID值始终为1。

例如:

ID Firstname Lastname

1  John      Smith
2  Charlie   Jacobs
3  Jason     young

我希望如此,如果我删除行ID 1,则行ID 2将更改为ID 1,行ID 3将更改为ID 2.如下所示:

ID Firstname Lastname

1  Charlie   Jacobs
2  Jason     young

我希望能够再添加名称,然后从ID 3继续执行。最好我想知道SQL中是否有可以自动执行此操作的设置。如果这不可行,那么PHP脚本将是第二好的。

1 个答案:

答案 0 :(得分:0)

这不是一件正确的事。你为什么要那样做?这会弄乱你的主键值。所以不要这样做。来到解决方案

如果要在表单中显示此内容,只需为select语句中的每一行生成一个行号。它之间不会有任何差距。 MYSQL Generating Row Numbers

SELECT @row_number:=@row_number+1 AS row_number,db_names FROM mysql_testing, 
(SELECT @row_number:=0) AS t
ORDER BY db_names;