Vous n'êtes pas identifié(e).
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
J'attends votre réponse,Merci d'avance
Hors ligne
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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