sql >> Base de Datos >  >> RDS >> Mysql

¿Puede crear automáticamente un archivo mysqldump que no aplique restricciones de clave externa?

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.