PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 09/07/2024 20:35:08

Comment tracer l'exécution des triggers "système" ?

Bonjour,

Je souhaiterais tracer l'exécution des différents triggers liés aux contraintes (FK surtout). Vous voyez un moyen de faire ça ?

Parce que je me retrouve dans un cas incompréhensible. Une contrainte FK est manifestement  déclenchée sans raison sur  un ordre delete (pg13), et j'aimerai comprendre ce qui se passe.

En résumé :

Table T1 (id1 INT PIMARY KEY);

Table T2 (id2 PRIMARY KEY, t1_id1 INT REFERENCES T1(id));

Table T3 (id3 PRIMARY KEY, t1_id1 INT REFERENCES T1(id));


Si je fais des DELETE sur T3, manifestement ça déclenche le check de la FK sur T2 !?

C'est absurde, je n'arrive pas à le reproduire en créant des tables T1,T2,T3 sur une sandbox, mais je suis à peu près sûr de mon coup parce que l'ordre DELETE sur T3 mouline toujours 96h plus tard, alors que si je crée un index sur T2(t1_id1) le DELETE s'exécute en quelques milisecondes, et se je droppe l'index, re-belote, le delete dure plus que ma patience.

J'aimerais donc pourvoir identifier tous les triggers appelés sur mon ordre DELETE, avoir une stack d'appel ce serait l'idéal. Vous voyez un moyen de faire ça ?

Hors ligne

Pied de page des forums