在某个时候,表的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?
答案 0 :(得分:1)
您可以保持自动递增:您只需要将第一张表上的自动递增值更新为最大值+ 1
ALTER TABLE test_table AUTO_INCREMENT = 397959 + 1