Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Est-il possible de désactiver temporairement une contrainte de clé étrangère ?
Merci par avance
Hors ligne
Oui, il faut désactiver le trigger associé. Attention qu'à la réactivation, aucune vérification ne sera effectuée, ce qui fait que vous pourriez vous trouver avec des problèmes de cohérence de données. Voir http://docs.postgresql.fr/9.0/sql-altertable.html, avec le DISABLE TRIGGER.
Guillaume.
Hors ligne
La commande : ALTER table nom_table disable trigger all; fonctionne (l'attribut tgenabled de la table pg_trigger passe à D).
Cependant j'aimerais pouvoir désactiver une seule contrainte de clé étrangère. Je n'arrive pas à cibler le nom du déclencheur à désactiver. D'ailleurs plusieurs triggers apparaissent dans la pg_trigger concernant l'unique clé étrangère de ma table.
Merci (encore).
Hors ligne
Vous pouvez désactiver que certains triggers. Par contre, il vous faudra trouver les bon triggers pour viser juste
Guillaume.
Hors ligne
Merci.
Hors ligne
Il pourrait aussi être intéressant de déclarer la foreign key comme deferrable (si la version du moteur le permet).
Marc.
Hors ligne
Ce qui ne la désactive pas (ce qui est un bien ou un mal, suivant le but de cette "désactivation").
Guillaume.
Hors ligne
D'où ma question… Si on ne sait pas qu'on peut les créer en deferrable, on va vouloir désactiver totalement la contrainte.
Marc.
Hors ligne
Pages : 1