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

pprl5pva  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(478)

是否有可能在某个时刻,表的ID高于当前的自动增量值?
我有一张像队列一样的table。我每秒插入/删除10-30行,需要自动递增列才能继续。现在插入行时,会得到一个循环自动增量(id),例如: 374097 .
这是table:

CREATE TABLE `test_table` (
    `id` INT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (`id`)
COLLATE='utf8_bin'
ENGINE=InnoDB
AUTO_INCREMENT=374098;

还有一张table用这个 id 作为外键。

SELECT max(batch_id) from secondary_table;

退货: 397959 . 在某个时候,test\ u表的id已达到 397959 ,而自动增量要低得多!
我在电视上看到这个https://dev.mysql.com/doc/refman/8.0/en/replication-features-auto-increment.html 我应该很安全-自动递增是在一个简单的主键上设置的。
你知道我是否可以继续这样使用自动增量,或者我需要使用一个自备的id吗?

7y4bm7vi

7y4bm7vi1#

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

ALTER TABLE test_table AUTO_INCREMENT = 397959 + 1

相关问题