Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pouvez-vous créer automatiquement un fichier mysqldump qui n'applique pas les contraintes de clé étrangère ?

Le mysqldump commande incluse avec MySQL depuis la version 4.1.1 produit par défaut un script qui désactive les vérifications de clé étrangère. La ligne suivante est incluse en haut du fichier de vidage :

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

Le /*!40014 ... */ la syntaxe est un commentaire conditionnel qui sera exécuté sur MySQL version 4.0.14 et ultérieure. L'ancien paramètre de vérification des clés étrangères est restauré vers la fin du fichier de vidage :

/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;

Notez que les commentaires conditionnels sont interprétés par le client (plutôt que le serveur). Si vous chargez le fichier de vidage avec un client qui ne les prend pas en charge, les vérifications de clé étrangère ne seront pas désactivées et vous risquez de rencontrer des erreurs. Pour de meilleurs résultats, je suggérerais de charger les fichiers de vidage à l'aide du client de ligne de commande mysql officiel :

mysql -hserver -uuser -p database < dumpfile.sql

Il convient également de noter que si mysqldump est exécuté avec le --compact option, les commandes pour désactiver et réactiver les vérifications de clé étrangère sont omises du fichier de vidage.