Est-il possible de désactiver la vérification des contraintes de clés étrangères dans les tables innodb d'une base mysql ?
Je cherche à sauvegarder les liens entre les tables sans pour autant alourdir les traitements avec les vérifications de clés mais tout ceci en conservant les possibilités des transactions.
Je pourrais moi-même créer un fichier dans lequel énumérer les contraintes mais je préfère les centraliser dans la base.
Et puis, AnalyseSI les crée si bien ... :)
Le type MyISAM prend en compte les contraintes de clés étrangères et ne les vérifie pas, mais, à ma (faible) connaissance, ne gère pas les transactions (COMMIT et ROLLBACK sans effet, arrêtez moi si je me trompe...).
Après quelques recherches sur ce bon vieux Google, on me dit que :
SET FOREIGN_KEY_CHECKS = 0désactive les vérifications des contraintes de clés étrangères.
Mais voulant désactiver la vérification en général, je rajoute dans mon fichier d'initialisation :
set-variable = FOREIGN_KEY_CHECKS=0dans la section :
[mysqld]
Mais impossible de redémarrer le serveur :
MySQL: unknown variable 'foreign_key_checks = 0'
J'ai bien essayé de rajouter la ligne dans la section
[client]mais maintenant je ne peux plus ouvrir de console alors que les scripts perl arrivent très bien à travailler.
D'ailleurs, j'ai aussi tenté un
set-variable = AUTOCOMMIT=0mais les scripts s'en contre-fichent royalement.
Quelqu'un aurait-il un début de piste ?
Je suis prêt à retourner ma veste et en remonter les manches pour me mettre à PostgreSQL :)
# Variable de session
Posté par account . Évalué à 2.
Si tu ne veux pas de vérification des foreign keys par la base, ben, autant ne pas les déclarer...
# meuh
Posté par gc (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.