这个问题几乎说明了一切。我们在这里谈论 MySQL,版本 5.1。
我想知道的是这是否严格意味着行已被删除,或者是否有其他可能的情况可能导致这种情况:奇怪的锁定或竞争条件等,迫使表的ID
计数器为一次插入多次递增。
我有一个带有自动增量主键的表。如果我想更改一行并添加新行,我会根据引擎 MyISAM 和 InnoDB 获得不同的主键。原表是:
pk.. 动物代码 动物名称 动物类别 有效日期 到期日期
1... 1... 狗... 米... 2013-10-21.... 9999-12-31
2... 2... 青蛙... ..一...2013-10-21..... 9999-12-31
如果我使用 MyISAM 运行更新/插入代码,我会得到以下信息:
pk.. 动物代码 动物名称 动物类别 有效日期 到期日期
1... 1... 狗... 米... 2013-10-21.... 2013-10-20
2... 2... 青蛙... .. 一个... 2013-10-21..... 9999-12-31
3 ... 1... 狗..... 米... 2013-10-21..... 9999 -12-31
4... 3... 猫... 米... 2013-10-21..... 9999-12-31
并使用InnoDB:pk..animal_codeanimal_nameanimal_class effective_dateexpiry_date
1...1...dogg...m...2013-10-21....2013-10-20
2...2...青蛙..... 一个... 2013-10-21..... 9999-12-31
4 ... 1... 狗..... 米... 2013-10-21.. ... 9999-12-31
5... 3... 猫... 米... 2013-10-21..... 9999-12-31
MyISAM …