Tenemos una base de datos con un par de cientos de tablas. Las tablas que usan foreign_keys usan INNODB.MySQL encuentra claves foráneas no válidas
A veces transferimos datos (tablas individuales usando mysqldump
) entre nuestras bases de datos de desarrollo, escenario y producción. mysqldump
deshabilita todas las comprobaciones de claves externas para facilitar la importación de datos.
De modo que con el tiempo algunas de nuestras bases de datos de no producción terminan con unos pocos registros huérfanos.
Estaba a punto de escribir una secuencia de comandos que encontraría y detectaría claves foráneas no válidas (claves que apuntan a registros faltantes) para una base de datos MySQL completa.
Sé que puedo escribir una consulta para verificar cada tabla y fkey una por una, pero pensaba que ya podría haber una herramienta para hacerlo.
Revisaría antes de escribir un script así para ver si ya hay uno.
Búsqueda en google un poco ... sorprendentemente no encontré nada.
¿Qué quieres decir con "no válido"? ¿Registros huérfanos? tablas con FK que apuntan a tablas que ya no existen? –
Puede hacer que su base de datos haga esto automáticamente (dependiendo de qué motor de base de datos esté utilizando) y tenerlo EN ELIMINAR CASCADA para que se mantenga la integridad referencial. –
Además de stefans, tenga en cuenta que puede anular al niño o actualizarlo, no es necesario que lo elimine. – TomDunning