mysql - 如何仅更改单个表的自动增量偏移量和步长值?
问题描述
我有一个整体数据库,其中有一个包含大约 6000 万行的表。设置是 master-master 复制的,其中一个 master 写入偶数自动增量 id,其他 master 写入奇数自动增量 id。
但是我想更改设置,以便我可以为整个数据库中的单个表(有问题的表)使用 4 的步长和偏移量 1 和 3。甚至可能吗?
解决方案
不。
MySQL 文档明确指出,自动增量偏移量是每个 MySQL 实例的设置,并将应用于数据库上的所有表。
不可能将这两个变量的影响限制在一个表中;这些变量控制 MySQL 服务器上所有表中所有 AUTO_INCREMENT 列的行为。如果设置了任一变量的全局值,其影响将持续到全局值被更改或通过设置会话值覆盖,或者直到 mysqld 重新启动。如果设置了本地值,则新值会影响当前用户在会话期间插入新行的所有表的 AUTO_INCREMENT 列,除非在该会话期间更改了值。
推荐阅读
- elasticsearch - 删除 ElasticSearch 7 中的索引类型
- r - 在 mutate() 中使用 weighted.mean() 创建行加权平均值
- c++ - 在 CMake 中添加第三方静态库 + 标头
- java-3d - 如何使用 Java3D 绘制 3d 坐标?
- amazon-web-services - 启用或禁用 Amazon S3 存储桶复制
- python - 在 EIP-1559 后世界发送整个以太坊地址余额
- php - Php - 无法创建新的数据库记录,因为主键为空(自动增量)
- reactjs - How to test api calls within redux-saga
- javascript - 使垂直进度条平滑
- typescript - 带有返回的 Typescript 中的早期退出函数导致 Eslint '没有无用的返回'错误