Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更改“步长自动增量”字段“增量”_Mysql_Auto Increment - Fatal编程技术网

Mysql 更改“步长自动增量”字段“增量”

Mysql 更改“步长自动增量”字段“增量”,mysql,auto-increment,Mysql,Auto Increment,如何将MySQL increment by中的amountauto_increment字段从默认值(1)更改为n?您可以使用以下方法进行更改: 或者,如果要从一开始设置: CREATE TABLE table (...) AUTO_INCREMENT = n; 如果要将自动增量步长从1更改为N,则有一个解决方案。 可以在MySQL服务器端完成: 查找“--auto increment-increment”启动选项或使用以下命令SET@@auto\u increment\u increment=

如何将MySQL increment by中的amount
auto_increment
字段从默认值(1)更改为n?

您可以使用以下方法进行更改:

或者,如果要从一开始设置:

CREATE TABLE table (...) AUTO_INCREMENT = n;

如果要将自动增量步长从1更改为N,则有一个解决方案。 可以在MySQL服务器端完成: 查找“--auto increment-increment”启动选项或使用以下命令
SET@@auto\u increment\u increment=2,但请注意,这是服务器范围的更改(所有表都将增加2)

Unortodox解决方案可以考虑:

  • 在同一台机器上启动两个具有不同端口的MySQL服务器(一个具有
    auto\u increment\u increment=1
    另一个具有
    auto\u increment\u increment=2
  • 使用一些服务器端魔法(PHP、ASP、?)结合关闭表
    自动增量
    手动计算(在最后一个id和+=2处简单窥视即可),并在
    插入
    查询中提供id
  • 更改表格自动增量=n
    
    其中n是要开始的数字

    您也可以使用
    将SEQUENCE\u name INCREMENT改为N,其中N是新的增量值。

    我认为这并不是他想要的(它回答了他在问题主体中提出的问题,但不是标题中的问题)。这个问题显然是模棱两可的。是的,这并不是他想要做的(我现在编辑了这个问题,希望让它更清楚)。你想更改下一个使用的值,还是在值之间使用的步长(例如步长值2,使用1、3、5、7等)?抱歉,如果问题不明确是的正确我希望自动增量应该按照您的说明执行(如sql server中的标识(1,3),它将下一个值增加3)@sansknwoledge-我编辑了这个问题,希望它能问您的意思!您好,我查看了faq我有点困惑[您可以设置每个服务器生成与其他服务器不冲突的自动增量值。自动增量值应该大于服务器的数量(从该页面)]任何人都可以解释这一点吗?其思想是:服务器={db1,db2,db3};db01:{--auto-increment offset=0;--auto-increment=3};db02:{--auto-increment offset=1;--auto-increment=3};db03:{--auto-increment offset=2;--auto-increment=3};因此,db1只生成ID,其中(n%3)==0,对于db2(n%3)==1,对于db3(n%3)==2;i、 db1:“3,6,9,…”db2:“1,4,7,…”db3:“2,5,8”->无idconflict@Piskvor谢谢你的澄清,但是,如果我的数据库中有多个表都具有自动生成列,并且我只希望有一个表以步骤(例如2和rest follow 3)递增,我该怎么办?是否有任何方法可以只对一个表一步递增。这不调整步骤,而是调整起始值。这只是起始值
    CREATE TABLE table (...) AUTO_INCREMENT = n;
    
    alter table <table name>  auto_increment=n