mysql - 设置 auto_increment_increment = 1 对现有表的影响

标签 mysql database auto-increment

我创建了一个新的 MySql 表,看到自动递增字段以 3 的值开始并递增 2。我做了一个 SHOW VARIABLES LIKE 'auto_inc%'; 并得到这个 -

auto_increment_increment 2
auto_increment_offset 2

我做了一些研究,发现我需要使用-

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

但我的问题是,将这两个值都设置为 1 会影响行在具有自动递增字段的其他表中的插入方式吗?现在插入这些表的新行是否会以 1 的自动增量 id 开头?还是这只会影响 future 的新表?

最佳答案

auto_increment_incrementauto_increment_offset 的效果不是针对每个表的,它适用于您插入的所有表。

如果您在自己的 session 中使用 SET,则变量只会在您的 session 中更改。其他 session 中的行为不会改变。此外,如果您断开连接并重新连接,您的 session 设置将重置为全局设置。

要进行全局更改,您需要使用SET GLOBAL。但下次 MySQL 服务器重新启动时更改将被撤消。

要使更改全局持久化,要么编辑my.cnf 文件,以便在每次 MySQL 服务器启动时设置该变量,要么在 MySQL 8.0 中添加一项功能,因此您现在可以使用 SET PERSIST 更改全局变量,并且它会在重启后保留设置。

您可以阅读更多相关信息:

关于mysql - 设置 auto_increment_increment = 1 对现有表的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843617/

相关文章:

javascript - 将 nodejs 连接到谷歌云 SQL

mysql - R 编程 - 将日语字符插入 MySQL

mysql - 如何根据特定值显示数据

sql - 从 Access 迁移到 SQL Server

database - [H2 and Firebird]auto_increment, identity or trigger plus generator?

MySQL 自动增量=535

mysql bin日志模式自动增量

php - 一起使用 COUNT 和 GROUP 时无法检索零值

ruby-on-rails - 如何将对象 `id` 存储在迁移文件中?

php - 从Mysql获取rowid