首页 > 解决方案 > 如何仅更改单个表的自动增量偏移量和步长值?

问题描述

我有一个整体数据库,其中有一个包含大约 6000 万行的表。设置是 master-master 复制的,其中一个 master 写入偶数自动增量 id,其他 master 写入奇数自动增量 id。

但是我想更改设置,以便我可以为整个数据库中的单个表(有问题的表)使用 4 的步长和偏移量 1 和 3。甚至可能吗?

标签: mysqldatabaseauto-increment

解决方案


不。

MySQL 文档明确指出,自动增量偏移量是每个 MySQL 实例的设置,并将应用于数据库上的所有表。

该文档可以在https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_auto_increment_increment中查看。

不可能将这两个变量的影响限制在一个表中;这些变量控制 MySQL 服务器上所有表中所有 AUTO_INCREMENT 列的行为。如果设置了任一变量的全局值,其影响将持续到全局值被更改或通过设置会话值覆盖,或者直到 mysqld 重新启动。如果设置了本地值,则新值会影响当前用户在会话期间插入新行的所有表的 AUTO_INCREMENT 列,除非在该会话期间更改了值。


推荐阅读