Bonjour,
voici deux tables :
table1
table2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 id1(pk) objectid z 0 1 100 1 2 98
objectid fait reference à n_sd (1-n).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 id2(pk) n_sd prof alt_inf 0 1 5 1 1 15 2 2 8
L'objectif de la requête dans le trigger est de calculer au moment de l'insertion dans la table 2, la valeur de alt_inf qui est z-prof pour un objectid = n_sd.
Ce qui donne de prime abord :
Le hic est que la sous-requête renvoie plusieurs lignes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 IF (TG_OP = 'INSERT') THEN NEW.alti_inf = (select z-NEW.prof from table1, table2 where table2.n_sd = table1.objectid ) RETURN NEW; END IF ;
J'ai trouvé une parade en créant une colonne dans table 2 qui insére le z de la table 1 pour chaque objectid et dont on se sert pour faire le calcul, mais je me demandais s'il n'y avait pas (sûrement) plus élégant, c'est à dire sans créer ce champ supplémentaire.
Merci pour vos idées.
Partager