MySQL自动增量:有没有办法从1开始重新分配ID?

时间:2014-03-31 07:53:39

标签: mysql auto-increment

我有一个带有自动增量ID的表,它运行了很多INSERT和DELETE,导致数字存在很大差距。我只是为了整洁而感到疑惑,是否有一个以最低ID开头的查询,将其分配1并从那里开始+1?该ID与数据库中的任何其他列都没有关系。

所以它会来自,例如:

1034 2572 9012

为:

1 2 3

我不想重置自动增量,我知道该怎么做。我实际上是要更改ID。或者这被认为是不好的做法?

感谢。

3 个答案:

答案 0 :(得分:3)

我认为这是不好的做法。但是......你可以将你的数据选择到另一个激活了另一个自动增量键的表中,但没有你的id,然后截断你当前的表并将你的数据与新id重新插入......当然,存在丢失的危险数据等,我真的不会这样做。

P.S。您还需要重置串口的当前值。

答案 1 :(得分:1)

虽然这不是一个好习惯,但你可以使用这样的查询:

假设我们有一个包含两个fiels idvalue的表,其中id的类型为INT。

insert into table (id, value)
select max(id)+1, 'value' from table

请注意,如果同时运行多个查询,可能会出现大量插入/更新问题。

答案 2 :(得分:0)

;sendStringParametersAsUnicode=false

请注意:如果您使用ID作为外部密钥的参考,那么您就会遇到破坏数据一致性的大问题!

相关问题