IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PostgreSQL Discussion :

CREATE CONSTRAINT TRIGGER


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 75
    Points : 62
    Points
    62
    Par défaut CREATE CONSTRAINT TRIGGER
    Bonjour à tous,

    Je suis en train de travailler sur une application utilisant PostgreSQL 8.2 et on m'a demandé de faire en sorte, qu'à chaque fois qu'une transaction est validée, que le SGBD informe une autre application des modifications effectuées dans la base de données.
    Jusqu'ici, je suis arrivé à faire communiquer mon SGBD et mon application via une procédure stockée Perl et un serveur JMS.
    Je suis en train de m'attaquer au développement des triggers qui seront déclenchés à chaque modification. Ces triggers doivent être exécutés à la fin de la transaction et ne doivent pas fournir deux fois le même identifiant d'un objet modifié. Pour la deuxième contrainte, je passe par une table temporaire, détruite à la fin de la transaction, qui permet aux triggers de savoir quels sont les identifiants déjà transmis.

    Mon problème concerne la première contrainte, je ne sais pas comment faire pour que les triggers s'exécutent en fin de transaction et une fois la transaction validée. Est-ce que la commande "CREATE CONSTRAINT TRIGGER" peut résoudre mon problème ? Je ne suis pas sûr.

    Merci d'avance pour vos aides.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Ceci est infaisable.
    En effet une transaction ne concerne pas forcément une seule table mais peut en concerner plusieurs (c'est d'ailleurs tout l'intérêt des SGBDR !)... Dès lors sur quelle table faire porter le trigger ?
    Le seul moyen de réaliser la demande, et de développer en épais, c'est à dire réaliser une couche objet directement dans le SGBDR.
    A lire : http://blog.developpez.com/sqlpro/p9...pping-ro-dire/
    Or PostGreSQL ne possède pas de trigger INSTEAD OF pour ce faire.
    C'est pourquoi la demande est irréaliste, infaisable et pour ma part je la qualifierais de stupide !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Create system trigger
    Par dnboa dans le forum PL/SQL
    Réponses: 2
    Dernier message: 19/11/2008, 10h38
  2. trigger et create
    Par harjer dans le forum Développement
    Réponses: 5
    Dernier message: 25/04/2007, 09h33
  3. pb script sql sur trigger (create or replace)
    Par sun19 dans le forum Développement
    Réponses: 3
    Dernier message: 29/11/2006, 13h02
  4. probleme de create trigger
    Par mechantflou dans le forum Oracle
    Réponses: 7
    Dernier message: 03/07/2006, 11h39
  5. Réponses: 2
    Dernier message: 01/03/2006, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo