Alimenter une table de correspondance avec PK autoincrémentés

Linda_01 Messages postés 2 Statut Membre -  
Linda_01 Messages postés 2 Statut Membre -
Bonjour tous,

Je passe souvent sur le site et aujourd'hui j'ai une question a soumettre:

Voilà, j'ai 2 tables sources :
S1 (PK1, PERSONNE, AA)
S2 (PK2, FK1, VOITURE, AB) FK1=FK(S1.PK1)

Et 3 tables de destination que je souhaite alimenter:
D1 (autoincrémental_PK1, PERSONNE, AA)
D2 (autoincrémental_PK2, VOITURE, AB)
D3 (ID_1, ID_2) ID_1=FK(D1.autoincrémental_PK1) et ID_2=FK(D2.autoincrémental_PK2)

Ces PK autoincrémentées m'ennuie, je sais pas si pour alimenter D3 je dois passer par la séquence, ou si je dois utiliser la clause RETURNING
qui ferait par exemple alimentation de D1 :
Insert from S1 returning autoincrémental_PK1 into D3.ID_1.

Quel approcher auriez-vous ?

Amicalement,
Linda.

1 réponse

  1. Linda_01 Messages postés 2 Statut Membre
     
    Je suis sur cette piste:

    INSERT ALL
    INTO /*+ append */ D1
    (PERSONNE,AA)
    VALUES(PERSONNE,AA)

    INTO /*+ append */ D2
    (VOITURE,AB)
    VALUES(VOITURE,AB)

    RETURNING
    (autoincrémental_PK1
    ,autoincrémental_PK2)
    INTO /*+ append */ D3
    (ID_1, ID_2)

    from
    (
    select
    S1.PERSONNE
    ,S1.AA
    ,S2.VOITURE
    ,S2.AB
    from S1
    JOIN S2 ON S1.PK1=S2.FK1
    );

    => Des avis?
    0