#1 Tue 24 May 2016 09:31
- Alice.C
- Participant occasionnel
- Date d'inscription: 24 Sep 2015
- Messages: 15
[PostgreSQL] Trigger sur une jointure entre deux tables
Bonjour à tous,
Je dispose d'une table 'acte', d'une table 'servitude' et d'une table 'acte_sup' où cette dernière est une table intermédiaire entre les deux premières. En effet, un acte peut avoir plusieurs servitudes et une servitude peut avoir plusieurs actes. Soit, "id_acte" et "id_sup" qui sont clés primaires dans leur table respective, deviennent des clés étrangères dans la table 'acte_sup' (voir pièce jointe).
Cette relation plusieurs à plusieurs est tout l'objet de mon problème car je ne sais comment mener à bien mon raisonnement.
Je souhaiterais créer un trigger qui me permette de mettre à jour 'acte_sup' en fonction des saisies sur 'acte' et sur 'servitude'. En sachant que dans la saisie, l'ordre logique des choses est de commencer par les actes puis les servitudes. Ainsi, me voilà confronter à quelques questions :
1. Dois-je associer mon trigger à 'servitude' ou à 'acte_sup' ?
2. Dois-je découper le processus en plusieurs étapes ? Cad d'abord un insert puis ensuite un update ?
3. Simplement, comment désigner l'association de mes deux tables dans mon trigger si je n'aie pas de champ commun ?
Voilà, si quelqu'un peut-il m'éclaircir quant au bon fonctionnement de cette démarche.
Par ailleurs, j'ai posté un message similaire à cette adresse http://www.developpez.net/forums/d15...-entre-tables/ et vous tiendrai au courant des éventuelles réponses.
En vous remerciant par avance,
Alice.
Dernière modification par Alice.C (Tue 24 May 2016 09:31)
Hors ligne
#2 Tue 24 May 2016 17:04
- JP LLORENS
- Participant assidu
- Date d'inscription: 12 Nov 2008
- Messages: 231
Re: [PostgreSQL] Trigger sur une jointure entre deux tables
Bonjour.
D'après ce que je comprend, ne faudrait-il pas créer une vue 'acte-sup' qui serait le résultat d'une jointure entre 'acte' et 'servitude' plutôt qu'une table ?
Ainsi toute modification sur l'une ou l'autre des 2 tables est immédiatement remontée dans la vue, sans avoir besoin d'un trigger.
Cordialement
JP
Hors ligne