systemadmin.es > DBA > Resetear el AUTO_INCREMENT

Resetear el AUTO_INCREMENT

Los contadores AUTO_INCREMENT de MySQL podemos asignares un valor de inicio cualquiera o resetearlos a un valor inicial mediante un ALTER TABLE.

Vamos a suponer la siguiente tabla de ejemplo:

mysql> create table test(id int AUTO_INCREMENT, value text, primary key(id));
Query OK, 0 rows affected (0.01 sec)

Podemos ver como al insertar valores el id va creciendo pero si le hacemos un DELETE no se renicia el valor:

mysql> insert into test(value) values ('insert1');
Query OK, 1 row affected (0.01 sec)

mysql> insert into test(value) values ('insert2');
Query OK, 1 row affected (0.00 sec)

mysql> delete from test;
Query OK, 2 rows affected (0.00 sec)

mysql> insert into test(value) values ('insert1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+---------+
| id | value   |
+----+---------+
|  3 | insert1 |
+----+---------+
1 row in set (0.00 sec)

Mediante un TRUNCATE si que lo reseteariamos:

mysql> select * from test;
+----+---------+
| id | value   |
+----+---------+
|  3 | insert1 |
+----+---------+
1 row in set (0.00 sec)

mysql> truncate test;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test(value) values ('insert1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+---------+
| id | value   |
+----+---------+
|  1 | insert1 |
+----+---------+
1 row in set (0.00 sec)

En el caso que queramos resetarlo a un valor concreto, por ejemplo 100, podemos hacerlo mediante un ALTER TABLE como el siguiente:

ALTER TABLE ejemplo AUTO_INCREMENT=100;

Podemos apreciar el cambio mediante el siguiente ejemplo:

mysql> select * from test;
+----+---------+
| id | value   |
+----+---------+
|  1 | insert1 |
+----+---------+
1 row in set (0.00 sec)

mysql> ALTER TABLE test AUTO_INCREMENT=100;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into test(value) values ('insert2');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+-----+---------+
| id  | value   |
+-----+---------+
|   1 | insert1 |
| 100 | insert2 |
+-----+---------+
2 rows in set (0.00 sec)

Relacionados

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>