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 25/11/2012 17:01:52

doha-i2m
Membre

déclencher un trigger fonctionnant sur plusieurs tables

Bonjour,
Mon projet de mastère étudie la vérification de la cohérence lors de la mise à jour des BDG. Ma base de données contient des tables contenant des objets (bâtiments,rivières,parcs,personnes..) et une table pour les contraintes spatiales ( les relations spatiales interdites entre les pairs des objets géographiques), je veux que lors de l'insertion d'un nouvel objet dans la base, la table des contraintes sera réduite c'est à dire le système m'affichera seulement les lignes qui concernent ce type d'objet à insérer.
Exemple:

create trigger trg_reduce_constrainte
after insert on buildings
select * from contraintes where contraintes.classe_obj1='buildings';
end;

Mais ce trigger n'est pas accepté par le Postgresql. SVP aidez moi à résoudre ce problème sad
J'attends votre réponse,Merci d'avance smile

Hors ligne

#2 25/11/2012 17:08:04

rjuju
Administrateur

Re : déclencher un trigger fonctionnant sur plusieurs tables

Bonjour,

votre message n'est pas très  clair. Que voulez-vous faire exactement ? Si vous voulez avoir l'état d'une table après une insertion, il faudrait plutôt insérer les données de cette table dans une table d'archive.

Hors ligne

#3 26/11/2012 11:56:59

doha-i2m
Membre

Re : déclencher un trigger fonctionnant sur plusieurs tables

Merci pour votre réponse, en fait cette partie de mon projet de mastère consiste à s'assurer,Lors de l'insertion d'un nouvel objet dans la base, que ce dernier ne cause pas des incohérences (exemple chevauchement avec un autre bâtiment..), la vérification se fait en comparant les relations spatiales détectées lors de cette insertion avec les relations interdites se trouvant dans la table des contraintes (elle contient les champs suivantes: idc,classe_obj1,classe_obj2,relation,spécification (interdite ou non)), je veux avoir une vue de la table des contraintes mais en affichant que les contraintes où classe_obj1=la classe de l'objet inséré(pour faciliter le procédure de la vérification par la suite). Je veux que cette étape de la réduction s'exécute automatiquement à chaque insertion d'un nouvel objet.
J'espère que vous avez bien compris mon problème. Merciii

Hors ligne

#4 27/11/2012 22:51:47

gleu
Administrateur

Re : déclencher un trigger fonctionnant sur plusieurs tables

Votre problème n'est pas très clair. Concernant votre CREATE TRIGGER, cela ne fonctionne pas car ce n'est pas correct syntaxiquement. La syntaxe exact se trouve sur http://docs.postgresql.fr/9.2/sql-createtrigger.html.


Guillaume.

Hors ligne

Pied de page des forums