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 17/10/2014 09:09:19

Exécution de plusieurs règles sur une table

Bonjour,


Je dispose de deux règles sur une même table :

ON UPDATE TO table1 INSERT INTO table 2 ;

ON DELETE TO table1 INSERT INTO table2 ;

Je souhaiterais ajouter une règle :

ON INSERT TO table1 UPDATE table1 SET colonne = 'data' ... ; 

Le problème rencontré est que l'UPDATE de la règle ON INSERT va déclencher la règle ON UPDATE... Comment contourner ce problème ? Existe-t-il un moyen de dire que dans le cas d'un INSERT, une autre règle est ignorée ?


Merci pour votre aide !


Thomas

Dernière modification par Thomas Williamson (17/10/2014 09:11:19)

Hors ligne

#2 17/10/2014 10:03:07

gleu
Administrateur

Re : Exécution de plusieurs règles sur une table

Comment contourner ce problème ?

Utilisez un trigger, vous ne vous en sortirez jamais avec une règle.

Existe-t-il un moyen de dire que dans le cas d'un INSERT, une autre règle est ignorée ?

Non.


Guillaume.

Hors ligne

#3 17/10/2014 10:17:13

Re : Exécution de plusieurs règles sur une table

Merci. J'y avais bien pensé mais la doc est complexe pour se former seul aux triggers (à mon sens)...

Hors ligne

#4 17/10/2014 15:04:26

gleu
Administrateur

Re : Exécution de plusieurs règles sur une table

Possible mais comprendre (réellement) le sytème des règles est encore pire, franchement smile


Guillaume.

Hors ligne

#5 25/10/2014 08:24:44

PmGs7
Membre

Re : Exécution de plusieurs règles sur une table

Les triggers ne sont pas très complexes, comme tout il faut passer un peu de temps pour les comprendre ...

Les règles ne sont que des triggers et je ne pense donc pas que règle ou trigger soit différent pour répondre à la question.

Personnellement, j'utiliserai un champ update_type dans table 1, champ que je positionnerais dans le 3ème SQL et que je testerais dans les 2 premiers.

Hors ligne

Pied de page des forums