El mysqldump
comando incluido con MySQL desde la versión 4.1.1
por defecto produce una secuencia de comandos que desactiva las comprobaciones de clave externa. La siguiente línea se incluye cerca de la parte superior del archivo de volcado:
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
El /*!40014 ... */
la sintaxis es un comentario condicional
que se ejecutará en MySQL versión 4.0.14 y posteriores. La antigua configuración de verificación de clave externa se restaura hacia el final del archivo de volcado:
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
Tenga en cuenta que los comentarios condicionales son interpretados por el cliente (en lugar del servidor). Si carga el archivo de volcado con un cliente que no lo admite, las comprobaciones de clave externa no se desactivarán y es posible que encuentre errores. Para obtener los mejores resultados, sugiero cargar archivos de volcado utilizando el cliente de línea de comandos mysql oficial:
mysql -hserver -uuser -p database < dumpfile.sql
También vale la pena señalar que si mysqldump
se ejecuta con --compact
opción, los comandos para deshabilitar y volver a habilitar las comprobaciones de clave externa se omiten del archivo de volcado.