INSTRUCCIÓN PARA ELIMINAR LOS REGISTROS SIN ELIMINAR ESTRUCTURAS Y DEVOLVER EL CAMPO AUTO_INCREMENT A VALOR INICIAL.
Cuando se trabaja con bases de datos MySQL es habitual utilizar los autoincrementales para crear las claves primarias de las tablas de datos. Este tipo de campos lo que hacen es asignar un entero diferente a cada nuevo registro, añadiendo 1 al anterior valor asignado, empezando por el 1. Por lo tanto, si borramos toda la información de la tabla y generamos un nuevo registro podremos comprobar como no obtiene un 1 sino el valor que hubiera correspondido antes de borrar los registros.
Esta instrucción vacía la tabla y resetea el auto incremental a su valor inicial.
Si lo que queremos es hacer que el valor auto_increment tome un valor determinado es posible utilizar la siguiente sentencia, que modifica la tabla cambiando el valor de autoincremento a 1000 (o al valor que queramos). Hay que tener en cuenta que este número debe ser mayor que cualquier id de la tabla.
Si queremos eliminar todos los registros de una tabla y reiniciar sus campos identity podemos simplemente usar una query TRUNCATE TABLE. Pero si no nos conviene, o no queremos eliminar todos o ningún registro, etc. Necesitamos reiniciar rápidamente un campo identity al valor que consideremos adecuado.
Esta sentencia nos permitirá realizar dicho reinicio:
Donde tblname será el nombre de la tabla y el 0 lo podemos sustituir por el número que queramos que comience el contador del campo identity.
Si necesitamos borrar la tabla y resetear este número para reiniciar la numeración en 1 la opción más sencilla es ejecutar la siguiente sentencia SQL.
TRUNCATE nombre_tabla;
Esta instrucción vacía la tabla y resetea el auto incremental a su valor inicial.
Si lo que queremos es hacer que el valor auto_increment tome un valor determinado es posible utilizar la siguiente sentencia, que modifica la tabla cambiando el valor de autoincremento a 1000 (o al valor que queramos). Hay que tener en cuenta que este número debe ser mayor que cualquier id de la tabla.
ALTER TABLE nombre_tabla AUTO_INCREMENT=1000
Si queremos eliminar todos los registros de una tabla y reiniciar sus campos identity podemos simplemente usar una query TRUNCATE TABLE. Pero si no nos conviene, o no queremos eliminar todos o ningún registro, etc. Necesitamos reiniciar rápidamente un campo identity al valor que consideremos adecuado.
Esta sentencia nos permitirá realizar dicho reinicio:
DBCC CHECKIDENT (tblname, RESEED, 0)
Donde tblname será el nombre de la tabla y el 0 lo podemos sustituir por el número que queramos que comience el contador del campo identity.
Figura 10. Devolver incremento
Fuente: