Resetear valores auto-incrementales

Cuando usamos BBDD, y mientras optimizamos configuraciones o interfaces de edición es muy común insertar multitud de valores que posteriormente no necesitaremos, o que formarán parte de un contexto de prueba de la aplicación. En el caso de usar valores autoincrementales como claves primarias de la BBDD (práctica muy común) esto tiene como consecuencia que, al borrar estos datos de prueba, quedan saltos entre los valores incrementales poco estéticos y que en ocasiones no reflejan el estado que uno concibe de la BBDD (secuencias de datos que son insertados conforme a una lógica y un orden).

Esto puede resolverse de varias maneras: una opción es borrar la tabla y crearla de nuevo (impracticable por naturaleza en la mayoría de los casos). Otra opción más sencilla es utilizar el siguiente comando:

 
ALTER TABLE nombre_tabla AUTO_INCREMENT=1

Esto permite que el único valor autoincremental que puede existir en una tabla se posicione al valor que le indiquemos.

Backup en MySQL

Tradicionalmente he ejecutado backups en MySQL utilizando únicamente comandos desde consola. Se podía conseguir de una manera sencilla utilizando código SQL. Para hacer los backups bastaba con:

BACKUP TABLE example TO `/backups/` 

Para posteriormente restaurar la copia de seguridad:

RESTORE TABLE pedidos FROM `/backups/`

Hay que mencionar que con este comando obtenemos una copia de seguridad de los ficheros que integran la BD y no un script SQL, que suele ser más sencillo de usar. Además, este comando sólo funciona con las tablas de tipo MyIsam, lo que deja fuera un porcentaje de tablas no desdeñable.

Pasé a utilizar MySQL administrator, que como todas las aplicaciones que ejecutan desde una GUI mejoran notablemente la velocidad de ejecución de ciertas tareas rutinarias, al reducirlas a unos cuantos clicks de ratón. No obstante, recientemente he tenido que hacer un backup de una máquina con ciertas peculiaridades: se trataba de un servidor virtual “subalojado” en otro servidor, con lo que el acceso desde MySQL administrator no era trivial (debía tunelizarlo para poder acceder al puerto del servidor MySQL de la máquina virtual, lo que añadía un tiempo extra a la ejecución de la tarea).

Lo solucioné usando mysqldump, una sencilla aplicación. Tan sólo basta con los dos siguientes comandos para hacerla funcionar:

mysqldump --opt --password=miclave --user=miuser mibasededatos > archivo.sql
mysql --password=miclave --user=miuser mibase < archivo.sql

Como se hace evidente, mysqldump almacena en un script el backup, con lo que es fácilmente mantenible, modificable y versátil.