【问题标题】:Changing the current count of an Auto Increment value in MySQL?更改 MySQL 中自动增量值的当前计数?
【发布时间】:2010-12-01 09:10:19
【问题描述】:

目前,每次我向数据库添加条目时,自动增量值都会增加 1,这是应该的。但是,它只是计数 47。所以,如果我添加一个新条目,它将是 48,然后另一个它将是 49,依此类推。

我想更改当前自动增量计数器的位置。 IE。我想将它从 47 更改为 10000,这样输入的下一个值将是 10001。我该怎么做?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以使用ALTER TABLE 设置AUTO_INCREMENT 列的值;引用该页面:

    改变值 AUTO_INCREMENT 计数器用于 新行,这样做:

    ALTER TABLE t2 AUTO_INCREMENT = value;
    

    还有一个注释说:

    您不能将计数器重置为 值小于或等于任何 已经被使用了。
    对于 MyISAM,如果 该值小于或等于 当前的最大值 AUTO_INCREMENT 列,值为 重置为当前最大值加一。
    对于 InnoDB,如果值小于 中的当前最大值 列,不会发生错误,并且 当前序列值没有改变。

    希望这会有所帮助!

    【讨论】:

    • 我想提一下,您只能将AUTO_INCREMENT 更改为具体数字。不允许表达。我试图通过ALTER TABLE t2 AUTO_INCREMENT = <the_current_value> + valueALTER TABLE t2 AUTO_INCREMENT = AUTO_INCREMENT + value“跳过”一些值,但都导致了一个看起来有点奇怪的错误。 MySQL 版本5.6.33
    【解决方案2】:

    请参阅ALTER TABLE 的手册 - 应该这样做:

    ALTER TABLE [tablename] AUTO_INCREMENT = [number]
    

    【讨论】:

      【解决方案3】:

      你可以通过执行以下语句来完成它

      ALTER TABLE t2 AUTO_INCREMENT = 10000;
      

      所以下一个自动增量键将从 10001 开始。

      希望能解决问题

      【讨论】:

      • 您为什么要重复已经给出的答案并且您是否包含垃圾邮件链接?请不要那样做。不需要打招呼(您的名字已经出现在帖子下方),也不需要发送垃圾邮件(只需将其放在您的用户个人资料中即可)。
      • 这是唯一解释,设置值 10000 将开始插入 ID 为 10001。
      • 实际上,[Value] 是下一个要使用的数字……而不是前一个值。因此,NEXT Auto 增量将是 10000 ... 不是 10001。
      【解决方案4】:

      也可以用建表语句设置如下;

      CREATE TABLE mytable (
           id int NOT NULL AUTO_INCREMENT,
           ...
           PRIMARY KEY (ID)
      )AUTO_INCREMENT=10000;
      

      希望它对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-12-30
        • 2021-03-03
        • 2015-09-30
        • 2013-11-07
        • 2019-10-01
        • 1970-01-01
        • 2011-09-17
        • 2018-02-27
        • 1970-01-01
        相关资源
        最近更新 更多