大量 INSERT 后 MySQL auto_increment 变得疯狂

标签 mysql

我创建了一个新表 (my_new_table),具有自动递增 PK。

SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'myschema'
AND   TABLE_NAME   = 'my_new_table';

结果:1,正常。

INSERT 将来自另一个表的 871 个值插入到该表中。然后我进行这两个查询中的任何一个:

SELECT MAX(id) FROM my_new_table;
SELECT count(*) FROM my_new_table;

结果:871。好的。

但是当我再次检查 AUTO_INCREMENT 时:

SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'myschema'
AND   TABLE_NAME   = 'my_new_table';

结果:1024

为什么 AUTO_INCREMENT 的值是 1024 而不是 872

提前致谢

最佳答案

这可能是由于 Mysql 2 个变量 auto_increment_incrementauto_increment_offset 这两个变量的值默认为 1。您对值进行了任何更改。

所以请让这两个变量的值 auto_increment_incrementauto_increment_offset 1

SET @@auto_increment_increment=1;
SET @@auto_increment_offset=1;

关于大量 INSERT 后 MySQL auto_increment 变得疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44945956/

相关文章:

PHP num_rows 工作但显示错误

javascript - NodeJS 内存泄漏

php - 查询数据库时出错-PHP,SQL和PHPMyAdmin

mysql - SQL 用相同的值更新多行

MySQL TINYINT(1) 与 BIT(1)

php - mysql时间戳选择旧记录

android - 为网站和移动应用程序创建数据库

php - 为什么这是 PHP 中的错误 MYSQL 查询?

php - MYSQL查询空字段的语句

php - 将数组插入 mysql (userCake)