如何在MySQL中没有更改的忽略插入上停止自动增量?

我使用INSERT IGNORE插入说500行,如果该行已经存在(基于一个唯一的字段)那么它什么都不做,如果没有它插入行.

我的问题是,只有10个不存在,每个插入的自动增量仍然增加,所以它上升了500,所以我最终得到了我的id的空白.我怎么阻止这个?

我试过了:

SET global innodb_autoinc_lock_mode = 0;

但我得到错误:

1238 – 变量’innodb_autoinc_lock_mode’是只读变量

我该如何改变?

最佳答案
根据MySQL’s documentation,innodb_autoinc_lock_mode不是动态变量,因此在MySQL运行时无法更改.

您必须在命令行中进行设置

--innodb_autoinc_lock_mode=0

或者在配置文件(mysql.ini)中

innodb_autoinc_lock_mode=0

应该注意的是,你不应该(读:永远)依赖于连续的id序列.回滚或失败的交易可能会导致差距.

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章