Pytanie : Spustowy wszywka z przymus

I mieć 2 stół:


T1
------------
ID_1 PK


T2
------------
ID_2
ID_1 FK



I potrzeba T1 cyngiel lubić:

if: NOWY. "ID_1" być nieobowiązujący then
wybiórka "T1_SEQ" .nextval w: NOWY. "ID_1" od podwójny;
wszywka w T2 (ID_1) wartość (wybiórka "T1_SEQ" .currval" od podwójny);
end if

but oczywiście I móc w T2 zanim T1 tworzyć:

ORA-02291: prawość przymus (SH.T2_FK) naruszać - mateczny klucz nie found

Do I mieć jakaś inny opcja wtedy FK przymus?

Odpowiedź : Spustowy wszywka z przymus

ie

Przed wszywka cyngiel

jeżeli: NOWY. "ID_1" być null wtedy
   wybierać "T1_SEQ" .nextval w: NOWY. "ID_1" od podwójny;
kończyć jeżeli

po wszywka cyngiel

wszywka w T2 (ID_1) wartość (: new.id_1);  


 

Inne rozwiązania  
 
programming4us programming4us