Dan*_*Tao 5 mysql auto-increment mysql-5.1
这个问题几乎说明了一切。我们在这里谈论 MySQL,版本 5.1。
我想知道的是这是否严格意味着行已被删除,或者是否有其他可能的情况可能导致这种情况:奇怪的锁定或竞争条件等,迫使表的ID
计数器为一次插入多次递增。
ype*_*eᵀᴹ 10
我假设您正在询问有关该AUTO_INCREMENT
属性的列。
不,删除的行不是唯一的原因,还有其他几个原因:
未成功的插入(由于重复的唯一键或主键违规或其他原因)。
在未提交并回滚的事务中插入。
在id
明确定义的地方插入(跳过 id 号或添加负值)。在第二种情况下,您可能会MAX(id)
比COUNT(id)
结果少。
前一种情况的变化:列不是AUTO_INCREMENT
在创建表时 - 所以在某个时期有显式插入 - 然后被修改。
自动递增列的更新。
将id
被设定为比默认的值不同的开始1
。
服务器的 auto_increment 步骤设置(系统变量:)auto_increment_increment
不是1
(或已更改为其他内容,而不是1
一段时间)。
和(通常被忽略的东西,因为id
通常是主键),该列未定义为PRIMARY
orUNIQUE
键。这允许重复和另一种情况,其中MAX
可以低于COUNT
.
上面的一个变体是(使用 MyISAM 引擎)一个自动递增列,它是复合主键的一部分。