Bonjour à tous et bonne année 2011,
Lors de l'insertion dans une vue multi-table je récupère l'identifiant d'une table pour l'insérer dans une autre table :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE OR ALTER TRIGGER V_LIGNE_COMMANDE_AI0 FOR V_LIGNE_COMMANDE ACTIVE AFTER INSERT POSITION 0 AS declare LigneID BIGINT; begin insert into tb_commande_ligne (commande_id,taux_remise,taux_taxe,accepted) values (new.commande_id, new.taux_remise, new.taux_taxe,new.accepted)RETURNING LIGNE_ID into : LigneID; insert into st_tb_ligne (Ligne_id,Ligne_qte,ligne_pu,art_id) values (:LigneID,new.ligne_qte,new.ligne_pu,new.art_id); end
Jusque là ça fonctionne bien.
L'appel de l'Insert se fait dans une procédure stockée :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 insert into v_ligne_commande (commande_id, taux_remise, taux_taxe, accepted, ligne_qte, ligne_pu, art_id) values (:commande_id, :taux_remise, :taux_taxe, :accepted, :ligne_qte, :ligne_pu, :art_id) returning ligne_id into :IDLIGNE;
J'essaye de faire un 2eme RETURNING pour récupérer le LIGNE_ID dans le IDLIGNE mais il semblerais que ca ne fonctionne pas (valeur NULL).
J'aimerais savoir si il n' y a pas un autre moyen de le faire autre que :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select gen_id(NOM_GENERATEUR, 1) from rdb$database into :IDLIGNE ;
Merci de votre aide.
Partager