【发布时间】:2012-05-06 08:02:03
【问题描述】:
在 MySQL 中,我使用INSERT IGNORE 语句将行插入到表中。因为一列是UNIQUE,所以没有插入一些行(因为它们已经存在)。执行该语句后,我注意到自动增量列在行之间缺少一些数字,后来我意识到这是由于行被忽略且未添加而发生的。
如果没有使用IGNORE 子句插入行,是否可以设置系统不增加自动递增计数器?
【问题讨论】:
-
你用的是什么版本的 MySQL?
-
auto_increment 列中缺少数字不是问题。它们永远不能保证没有间隙。忽略它。
-
@eggyal - mysql Ver 14.14 Distrib 5.5.20,适用于使用 readline 5.1 的 Linux (i686)
-
更好的措辞是:“未添加记录时重置计数器”。文档中没有任何内容表明自动递增的整数会被自动重用。
-
@stackoverflow - 我说的正好相反:文档不提到计数器在增加后会自动减少的任何特殊情况。我知道的所有重置都是手动的:
ALTER TABLE,TRUNCATE TABLE...
标签: mysql sql insert auto-increment