Une petite « astuce » pour se remettre dans le bain du blogging… Comme vous avez pu le constater la fréquence de mise à jour a un peu diminuée depuis notre retour de la MySQL Conf, corrigeons cela avec cette petite remise en jambe à classer dans la catégorie « pratique ».
La désactivation du contrôle des clés étrangères est intéressante lorsque vous devez exécuter sur votre serveur MySQL un script de création de tables par exemple. Il se peut dans ce cas que l’ordre de création des différentes tables ne soit pas « logique ».
J’entends par là qu’une table A peut contenir une contrainte basée sur une clé étrangère référençant le champ d’une table B… qui n’existe pas encore ! La « logique » voudrait que les tables soient inscrites dans le script selon les liens qui existent entre elles mais cela n’est pas toujours le cas.
Cette opération de classement pouvant s’avérer fastidieuse à effectuer manuellement, vous pouvez vous affranchir des vérifications effectuées par le SGBD concernant les clés étrangères en utilisant la commande suivante :
mysql> SET foreign_key_checks = 0;
Vous êtes ainsi tranquille le temps de créer vos tables. Réactiver ce contrôle n’est pas plus compliqué :
mysql> SET foreign_key_checks = 1;
Le chapitre de la documentation correspondant aux foreign keys nous indique que c’est d’ailleurs la technique employée par mysqldump.
Mots-clefs : pratique
Aaah… comme j’ai pu user (abuser ?) de cette « petite astuce »…
J’aurais parié mon poids en binlog que pour cette « reprise » le premier commentaire serait du type « ouah je vous croyais morts ! », j’ai perdu
ouah je vous croyais mort !
promis la prochaine remarque sera plus constructive
c’est reparti, la dream team est de nouveau en marche…
Yes ! de la lecture