自动增量值落后/低于实际值

时间:2018-08-27 08:46:32

标签: mysql amazon-rds-aurora aws-aurora

在某个时候,表的ID是否可能高于当前的AUTO_INCREMENT值?

我有一个像队列一样工作的表。我每秒插入/删除10-30行,并且需要自动递增列才能继续。现在插入行时,我得到了一个回收的自动增量(id),例如: <record id="my.list.action.for.school" model="ir.actions.act_window"> <field name="name">my.action</field> <!-- and so on --> <field name="context">{'full_name': 1}</field> </record>

这是桌子:

374097

还有另一个表将此CREATE TABLE `test_table` ( `id` INT(20) UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=374098; 用作外键。

id

返回:SELECT max(batch_id) from secondary_table; 在某个时刻,test_table的ID最多为397959,而AUTO_INCREMENT的ID更低!

我在https://dev.mysql.com/doc/refman/8.0/en/replication-features-auto-increment.html上了解了这一点,我应该很安全-将AUTO_INCREMENT设置在一个简单的主键上。

您知道我是否可以继续使用AUTO_INCREMENT,还是需要使用自己提供的ID?

1 个答案:

答案 0 :(得分:1)

您可以保持自动递增:您只需要将第一张表上的自动递增值更新为最大值+ 1

ALTER TABLE test_table AUTO_INCREMENT = 397959 + 1