将值插入auto-inc / identity列高于当前auto-inc / identity值

时间:2014-10-07 15:38:03

标签: mysql auto-increment sql-insert

详细

我在SE或MySQL文档上找不到有关此问题的任何信息。

我遇到过一种情况,我可能需要插入一个高于当前值的auto-inc值。例如,auto-inc列目前为12&我需要在15处插入一行auto-inc字段。

问题

1 - 如果我只是简单地执行此插入操作,一旦auto-inc命中15或者插入的下一个值是否从16开始,它会发生冲突吗?我被告知后者是朋友的工作方式。但是,在文档中我遇到了一个声明,它会导致它稍后发生冲突。这样做之后我是否必须将表重新设置为16?

2 - 在这种情况下,最佳做法是什么?

如果有任何其他信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

据我所知,插入一个高于当前增量的值可以调整数据库中的AUTO_INCREMENT值。也就是说,插入20将其设置为21.我相当确定这种行为在较新版本的MySQL中是一致的。

您可以使用SHOW CREATE TABLE查看当前的增量。

答案 1 :(得分:1)

试过了。

1)auto-inc将设置为16,不会造成任何问题。

2)我认为最佳做法是让auto-inc列单独工作,但我看不出有任何问题。但是,如果列具有主键或唯一键,则如果该值已存在于数据库中,则使用该列的值插入可能会导致出现问题。

希望它有所帮助!