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

Requêtes PostgreSQL Discussion :

Trigger sur table hérité


Sujet :

Requêtes PostgreSQL

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 47
    Points
    47
    Par défaut Trigger sur table hérité
    Bonjour,

    J'ai une table A, B et C tel que B et C héritent de A.
    J'ai un trigger sur A et je voudrais qu'il se déclenche aussi lorsqu'un tuple est inséré dans B et C (puisqu'ils héritent de A) hors il semblerait que cela ne fonctionne pas.

    J'ai bien pensé à écrire les triggers pour les deux tables B et C. Malheureusement
    une contrainte implique que l'id serial de A existe pour que le trigger fonctionne correctement. Hors il semble que l'id serial de A est affecté qu'après l'exécution du trigger en B ou C.

    Quelqu'un à une idée ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Le trigger est du type AFTER INSERT ou bien BEFORE INSERT?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    AFTER INSERT

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Que B hérite de A ou pas, un INSERT dans B a exactement le même comportement.
    Si une colonne SERIAL est déclarée dans A, sachant que serial est en fait un int avec une séquence en valeur par défaut, B a la même colonne avec la même séquence en valeur par défaut.
    Mais il n'y a aucune raison que le trigger after insert n'ait pas accès à cette valeur.
    Il doit y avoir un souci dans le code du trigger.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 47
    Points
    47
    Par défaut
    Pourtant sa marche si je me contente de mettre le trigger sur la table A.
    Pas de problème dans ce cas là...

    Avec un insert sur A aussi bien sur.

Discussions similaires

  1. Trigger sur table en INSERT
    Par salsamania dans le forum Développement
    Réponses: 7
    Dernier message: 28/09/2010, 16h27
  2. Trigger sur table de log pour statistiques
    Par kalagann dans le forum MySQL
    Réponses: 1
    Dernier message: 26/11/2009, 22h09
  3. Réponses: 1
    Dernier message: 08/07/2009, 09h37
  4. Trigger sur tables ou vues
    Par Mothership dans le forum Administration
    Réponses: 11
    Dernier message: 17/06/2009, 13h38
  5. problème Trigger sur table unique
    Par speedev dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 21/01/2009, 12h09

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