29/02/2012, 08:29
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: MysqlDump + auto_incremente No se trata de un error, sino de una prevención de consistencia.
El mysqldump recupera las tablas en el estado que en ese momento tienen en la base que se respalda, y pone el valor inicial de los AI en un valor mayor a 1 cuando existen registros en la tabla, o la misma ha sido usada previamente y sus registros borrados.
El objetivo de esto es permitir que cualquier restauración de la estructura no pise valores de AI usadas comop PK en otros respaldos; si te permitiera resetear en el backup, podría suceder que usases valores de PK que ya están presentes en otra parte, o en otros respaldos, y que pertenecen a registros distitos. Eso produciría una inconsistencia y fallas de integridad referencial si en un momento dado necesitas consolidar los datos nuevos con los de las copias de respaldo.
¿Se entiende la idea?
Ahora bien, si lo que quieres es recuperar la estructura sin datos, y con los AI iniciados a cero, tendrás que borrar manualmente esa clausula en el script generado, porque hasta lo que yo se no hay parámetro que permita el reinicio de los autoincrementales en un backup con mysqldump.
La otra posibilidad es eliminar tabla protabla los registros usando TRUNCATE, para luego realizar el backup. Esto funcionará si y sólo si las tablas son InnoDB; en las MyISAM hay que resetear el AI manualmente.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |