更改自动索引编号Mysql

更改自动索引编号Mysql,mysql,Mysql,在我的表中,我有一个自动递增的id,它的数字是1到66440,下一个数字是88846790+从这里递增到88846900 66440到88846790之间没有记录 我想我的下一个自动递增号码是66441,但需要88846791,您能帮我将下一个自动递增设置为66441吗,您可以使用更改表格来更改自动递增值: ALTER TABLE my_table AUTO_INCREMENT = 66441; 有关更多详细信息,请参阅 记住重新插入id高于88846790的所有行 如果不删除ID高于6644

在我的表中,我有一个自动递增的id,它的数字是1到66440,下一个数字是88846790+从这里递增到88846900

66440到88846790之间没有记录


我想我的下一个自动递增号码是66441,但需要88846791,您能帮我将下一个自动递增设置为66441吗,

您可以使用
更改表格
来更改自动递增值:

ALTER TABLE my_table AUTO_INCREMENT = 66441;
有关更多详细信息,请参阅

记住重新插入id高于88846790的所有行

如果不删除ID高于66441的行

自动增量中的更改不起任何作用

示例:

 ID    Value
----  --------
  1      C
  2      A
  4      D
 50      A
 51      C
如果我想将自动增量更改为
5
,我需要先删除或重新插入
50
51
。因为否则下一个自动增量将是
52

根据数据的数量和重要性,通常最好的做法是:什么都不做


因为这些主ID与其他行有关系,甚至可能是基于web-URL的opn这些ID。除非您创建某种脚本,否则所有操作都将失败。

您可以使用
ALTER TABLE

ALTER TABLE tablename AUTO_INCREMENT = 66441
应该做

ALTER TABLE tbl AUTO_INCREMENT = 66441;

如果您没有大于66441的记录ID,那么它应该可以工作。

您可以使用下面的ALTER TABLE命令

ALTER TABLE tablename AUTO_INCREMENT = 66441

我在phpMyAdmin中很难实现这一点,甚至无法直接输入查询。如果浏览要重置索引的表,然后单击
操作
,则应能够直接在
表选项
下设置
自动增量
。然后点击Go,一切就绪

我喜欢使用:

ALTER TABLE tablename AUTO_INCREMENT=1

从那时起,引擎将使其成为最低可用值。

是,我在问题中提到,66440到66440之间没有记录88846790@SiddeshBhalke:然后必须并且如果它工作,您是否可以发布具有长度的字段数据类型。请记住重新插入或删除id高于88846790的所有行。请阅读答案,然后尝试…不,您要么什么都不做,要么创建一个小脚本来重新插入所有行并调整自动增量。Tnx对于示例,它意味着如果不删除50和51,就无法将自动增量设置为5…?不,这将打破主Id的概念。否则它将不起作用。@Tim Dinh有一个有效点,删除所有自动增量值大于664440的行@Satya我不能删除这些数字,我需要它作为这些数字well@Siddhesh,那么我认为,除了将记录复制到另一个表中,并从此表中删除auto_incr value>664440的行之外,您没有其他出路。当查询时,需要将两个表连接起来,自动增量值应始终大于表中的最大值。即使您设法将其更改为一个较低的值(我怀疑您可以),它也可能会以丑陋的方式崩溃…@Siddeshbalke您也应该看看自动增量,这里是为所有未来的访问者提供的这个问题:永远不要试图将自动增量值设置为低于表中最大ID的值。当您的行数达到并与现有行冲突时,您将遇到麻烦。您的表可能会在自动递增序列中出现间隙-这是意料之中的,而且很好,自动递增的要点是字段不会有任何语义含义,因此间隙不会导致任何问题。如果你有“<代码> 2147483647 可用整型空间”的危险,请考虑将字段设为未签名或<代码> BigIt<代码>,或重建数据(并管理引用)。
ALTER TABLE tablename AUTO_INCREMENT=1