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

Setting auto_increment_increment = 1 effect on existing tables

我创建了一个新的 MySql table 并看到自动递增字段以 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 会影响行在具有自动递增字段的其他 table 上的插入方式吗?那些 tables 上插入的新行现在会以 1 的自动递增 id 开头吗?还是这只会影响新 table 的发展?

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

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

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

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

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