Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reset AUTO_INCREMENT in MySQL

How can I reset the AUTO_INCREMENT of a field?

I want it to start counting from 1 again.

like image 478
homerun Avatar asked Jan 19 '12 08:01

homerun


People also ask

How do I reset my auto increment primary key?

In MySQL, the syntax to reset the AUTO_INCREMENT column using the ALTER TABLE statement is: ALTER TABLE table_name AUTO_INCREMENT = value; table_name. The name of the table whose AUTO_INCREMENT column you wish to reset.

How do I change my primary key back to 1?

alter table yourTableName AUTO_INCREMENT=1; truncate table yourTableName; After doing the above two steps, you will get the primary key beginning from 1.

Can we change auto increment value in MySQL?

In MySQL, the syntax to change the starting value for an AUTO_INCREMENT column using the ALTER TABLE statement is: ALTER TABLE table_name AUTO_INCREMENT = start_value; table_name. The name of the table whose AUTO_INCREMENT value you wish to change.

Does truncate table reset auto increment?

The TRUNCATE TABLE statement removes all the data from a table and resets the auto-increment value to zero.


2 Answers

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

I think this will do it

like image 41
nghiepit Avatar answered Sep 21 '22 14:09

nghiepit


You can reset the counter with:

ALTER TABLE tablename AUTO_INCREMENT = 1 

For InnoDB you cannot set the auto_increment value lower or equal to the highest current index. (quote from ViralPatel):

Note that you cannot reset the counter to a value less than or equal to any that have already been used. For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one. For InnoDB, if the value is less than the current maximum value in the column, no error occurs and the current sequence value is not changed.

See How can I reset an MySQL AutoIncrement using a MAX value from another table? on how to dynamically get an acceptable value.

like image 127
Niels Avatar answered Sep 23 '22 14:09

Niels