更改步骤auto_increment字段的增量

san*_*dge 10 mysql auto-increment

如何将auto_incrementMySQL增量中的金额字段从默认值(1)更改为n?

mth*_*mth 7

如果你想将自动增量步骤从1改为N,那么就有一个解决方案.它可以在MySQL服务器端完成:查找'--auto-increment-increment'启动选项或使用以下命令SET @@auto_increment_increment=2;,但要注意这是服务器范围的更改(所有表将递增2).

可以考虑非传统的解决方案:

  1. 在同一台机器上启动两个MySQL服务器,使用不同的端口(一个与auto_increment_increment=1其他端口auto_increment_increment=2)
  2. 使用一些服务器端魔术(PHP,ASP,???)结合关闭表auto_increment来手动计算(简单查看最后一个id和+ = 2就可以了)并在INSERT查询中提供id .

一些官方的MySQL FAQ

  • 这个想法是这样的:servers = {db1,db2,db3}; DB01:{ - 自动递增偏移= 0; - 自动递增增量= 3}; DB02:{ - 自动递增偏移= 1; - 自动递增增量= 3}; DB03: {--auto增量偏移= 2; - 自动递增增量= 3}; 所以,db1只生成ID,其中(n%3)== 0,对于db2(n%3)== 1,对于db3(n%3)== 2; 即db1:"3,6,9,..."db2:"1,4,7,..."db3:"2,5,8" - >没有id冲突 (4认同)

Luk*_*ský 1

您可以使用以下方法更改它ALTER TABLE

ALTER TABLE table AUTO_INCREMENT = n;
Run Code Online (Sandbox Code Playgroud)

或者,如果您想从头开始设置:

CREATE TABLE table (...) AUTO_INCREMENT = n;
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这能达到他想要的效果(它回答了他在问题正文中提出的问题,但没有回答标题中的问题)。但这个问题肯定是模棱两可的。 (2认同)
  • 是的,这并没有做他想要做的事情(我现在编辑了问题以希望使其更清晰)。 (2认同)