Reiniciar AUTO_INCREMENT MySQL

En alguna ocasión se nos puede dar la necesidad de tener que borrar todos los datos de una tabla que tiene uno de los valores autoincremental, pero resulta que al borrarlos, el AUTO_INCREMENT sigue con los mismos datos y a la próxima entrada que haya, no tendrá un valor 1, sino que será mucho más elevado. Para evitar esto, cuando se borren los datos hay que acordarse también de reinicializar el valor del AUTO_INCREMENT.
Por lo tanto si partimos de una tabla con este aspecto (cedida de las amigos de zabbix),
mysql> show create table history_uint_sync;
+-------------------+---------------------------------------+
| Table             | Create Table                          |
+-------------------+---------------------------------------+
| history_uint_sync | CREATE TABLE `history_uint_sync` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `nodeid` bigint(20) unsigned NOT NULL DEFAULT '0',
  `itemid` bigint(20) unsigned NOT NULL DEFAULT '0',
  `clock` int(11) NOT NULL DEFAULT '0',
  `value` bigint(20) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `history_uint_sync_1` (`nodeid`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1                      |
+-------------------+---------------------------------------+
1 row in set (0.00 sec)
Si aplicamos una sentencia similar a esta,
mysql> DELETE FROM history_uint_sync;
Hay luego que acordarse de reiniciar el contador de los auto incrementales. Tal que así,
mysql> ALTER TABLE history_uint_sync AUTO_INCREMENT=0;


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios