300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql auto_increment 重置_如何重置MySQL中的AUTO_INCREMENT?

mysql auto_increment 重置_如何重置MySQL中的AUTO_INCREMENT?

时间:2021-05-10 12:46:25

相关推荐

mysql auto_increment 重置_如何重置MySQL中的AUTO_INCREMENT?

你可以用下面的方法重置计数器

ALTER TABLE tablename AUTO_INCREMENT = 1

对于InnoDB,您不能将auto_increment值设置为低于或等于最高当前索引。 (引自ViralPatel ):

请注意,您不能将计数器重置为小于或等于任何已使用的值。 对于MyISAM,如果该值小于或等于当前AUTO_INCREMENT列中的最大值,则将该值重置为当前最大值加1。 对于InnoDB,如果该值小于列中的当前最大值,则不会发生错误,并且当前序列值不会更改。

请参阅如何使用另一个表中的MAX值重置MySQL自动增量? 如何dynamic获得可接受的价值。

ALTER TABLE tablename AUTO_INCREMENT = 1

就像这样:

ALTER TABLE tablename AUTO_INCREMENT = value;

参考: http : ///doc/refman/5.1/en/alter-table.html

SET @num := 0; UPDATE your_table SET id = @num := (@num+1); ALTER TABLE your_table AUTO_INCREMENT =1;

我认为这将做到这一点

在“操作”选项卡下有一个非常简单的方法,你可以在表格选项中设置自动增量到你想要的数字。

最适合我的解决scheme:

ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED; COMMIT; ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT; COMMIT;

它的速度很快,和innoDB一起工作,我不需要知道当前的最大值! 这样自动增量计数器就会复位,并自动从最大值开始计数。

如何重置MySQL自动增量列有很好的select

请注意, ALTER TABLE tablename AUTO_INCREMENT = value; 对InnoDB不起作用

这个问题的评分最高的答案都推荐“ALTER yourtable AUTO_INCREMENT = value”。 但是,这只有在alter中的值大于autoincrement列的当前最大值时才有效。 根据MySQL文档 :

您不能将计数器重置为小于或等于任何已经使用的值。 对于MyISAM,如果该值小于或等于当前AUTO_INCREMENT列中的最大值,则将该值重置为当前最大值加1。 对于InnoDB,可以使用ALTER TABLE … AUTO_INCREMENT =从MySQL 5.0.3起的值,但是如果该值小于列中当前的最大值,则不会发生错误,并且当前序列值不会更改。

实质上,只能修改AUTO_INCREMENT来增加自动增量列的值,而不会将其重置为1,因为OP会在问题的第二部分中提出要求。 对于实际允许您将AUTO_INCREMENT从当前最大值向下设置的选项,请查看重新sorting/重置自动递增主键 。

添加更新,因为MySQL 5.6中的function已更改。 从MySQL 5.6开始,你可以使用简单的ALTER TABLE和InnoDB:

ALTER TABLE tablename AUTO_INCREMENT = 1;

文档已更新,以反映这一点:

我的testing也显示表格不被复制,值只是简单的改变。

ALTER TABLE news_feed DROP id ALTER TABLE news_feed ADD id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)

我在我的一些脚本中使用了这个,id字段被删除,然后加上以前的设置,数据库表中的所有存在的字段被填入新的自动增量值,这也应该与InnoDB一起工作。

请注意,表格中的所有字段将被重新logging,并且将具有其他ID!

你也可以像这样使用TRUNCATE表的语法: TRUNCATE TABLE table_name

谨防!! TRUNCATE TABLE your_table将删除 TRUNCATE TABLE your_table 所有内容 !

它是为空表:

ALTER TABLE `table_name` AUTO_INCREMENT = 1;

如果你有数据,但你想清理它,我build议使用这个:

ALTER TABLE `table_name` DROP `auto_colmn`; ALTER TABLE `table_name` ADD `auto_colmn` INT( {many you want} ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`auto_colmn`);

您可以简单地截断表来重置序列

TRUNCATE TABLE TABLE_NAME

一个表的自动增量计数器可以(重新)设置两种方式:

通过执行一个查询,像其他人已经解释:

ALTER TABLE AUTO_INCREMENT=;

使用工作台或其他可视化数据库devise工具。 我将在Workbench中展示它是如何完成的 – 但是在其他工具中也不会有太大的不同。 右键单击所需的表格,然后从上下文菜单中selectAlter table 。 在底部,您可以看到所有可用的选项来更改表格。 selectOptions ,你会得到这个表格:

然后只需在图像中显示的Auto increment字段中设置所需的值。 这将基本上执行第一个选项中显示的查询。

我试图改变表,并将auto_increment设置为1,但它没有工作。 我决定删除正在递增的列名,然后用您的首选名称创build一个新列,并将新列设置为从一开始就增加。

要更新最新加一个ID

ALTER TABLE table_name AUTO_INCREMENT = (SELECT (id+1) id FROM table_name order by id desc limit 1);

请使用下面的代码:

ALTER TABLE tablename AUTO_INCREMENT = 1

我build议你去查询浏览器,并执行以下操作:

去模式和find你想改变的表。

右键单击并select复制创build语句。

打开结果选项卡并粘贴create语句。

转到create语句的最后一行,查找Auto_Increment = N,(其中N是auto_increment字段的当前数字。)

将Nreplace为1。

按下ctrl + enter 。

一旦你在表格中input新行,Auto_increment应该重置为1。

我不知道如果你尝试添加一个auto_increment字段值已经存在的行会发生什么。

希望这个帮助!

最好的方法是删除与AI的领域,并再次与AI添加,适用于所有表

下面的代码适合我

Alter TABLE employee AUTO_INCREMENT = 5;

版本 – 5.7.13

引擎 – innodb

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。