Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2011, 14h15   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 85
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 85
Points : 14
Points : 14
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 ?
Agoudard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 16h32   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Le trigger est du type AFTER INSERT ou bien BEFORE INSERT?
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 16h36   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 85
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 85
Points : 14
Points : 14
AFTER INSERT
Agoudard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 17h01   #4
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
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.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 17h31   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 85
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 85
Points : 14
Points : 14
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.
Agoudard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h13.


 
 
 
 
Partenaires

Hébergement Web