Mysql重置id字段

时间:2012-01-30 13:30:56

标签: mysql sql

我想知道是否有可能重置id字段,让我们说现在我有5000条记录而且id是自动递增的并且在一段时间后我删除了一些记录所以现在它会像 1, 5, 10, 11, 23等等,对我来说这不是一个问题,我只是想知道是否有可能让所有的id都按顺序排列1,2,3,4,5等等

2 个答案:

答案 0 :(得分:3)

我首先会问你为什么要让它们按顺序排列。如果它只是OCD那么就忘了它。如果出于编程原因,您永远不应该依赖代理键。我建议你修改你的逻辑,这样你就可以使用某种类型的自然键,并使用它编写代码。

答案 1 :(得分:1)

你为什么需要这个?如果你的ID字段是unsigned bigint类型,那么你可以拥有9223372036854775808的值。这对你来说还不够吗?但是,如果您仍然认为这是一个问题,那么您应该查看存储过程功能:http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html。在程序中,您必须将当前记录与上一个和下一个记录进行比较,如果有“免费”号码,则转移ID。在程序结束时,您可以设置增量值,如下所示:ALTER TABLE table_name AUTO_INCREMENT = last_record + 1。使用MySQL内置功能无法做到这一点。