gpt4 book ai didi

mysql - 使用 INSERT ... SELECT 时的自动增量间隙,即使 innodb_autoinc_lock_mode = 0

转载 作者:可可西里 更新时间:2023-11-01 07:08:22 25 4
gpt4 key购买 nike

即使使用

,我的自动递增键也会出现间隙
innodb_autoinc_lock_mode = 0

我将问题隔离到单个 INSERT ... SELECT 语句。基本上,每个 INSERT ... SELECT 语句都会将表的 auto_increment 递增一个即使实际上没有执行插入(重复键)。在我的例子中,我使用了 INSERT IGNORE,但我没有测试,auto_increment 仍然错误地递增。

我担心这一点,因为这个 INSERT ... SELECT 语句运行频率有点高,因此键会很快变大。

如果没有办法,我会接受它,但是有什么办法可以避免这种行为吗?

最佳答案

这是一个错误。看到这个:http://bugs.mysql.com/bug.php?id=61058
...您可以使用以下方式避免它:

ALTER TABLE `test` AUTO_INCREMENT = 1;

在每次 insert...select 之后然而,这并不是一个好主意,因为 alter table 创建临时表、复制数据等等。

关于mysql - 使用 INSERT ... SELECT 时的自动增量间隙,即使 innodb_autoinc_lock_mode = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11120127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com