Što mi praktično znači da ne mogu insertovati slog u drugu tabelu
sa stranim ključem ako takav isti već ne postoji u prvoj tabeli.
Na primjer: Tabela_1(ID_t1, Opis)
Tabela_2(ID_t2, ID_t1, Opis)
Sada imam jednu stornu-proceduru, koju puštam da se izvrši kao transakcija, ZNAČI ILI ČITAVA ILI NIŠTA.
Code:
početak transakcije
INSERT INTO Tabela_1(ID_t1, Opis)
VALUES(1,'nešto za tabelu 1')
INSERT INTO Tabela_2(ID_t2, ID_t1, Opis)
VALUES(1, 1, 'nešto za tebelu 2')
commit transakcije ako je sve uspješno prošlo
inače roolback
početak transakcije
INSERT INTO Tabela_1(ID_t1, Opis)
VALUES(1,'nešto za tabelu 1')
INSERT INTO Tabela_2(ID_t2, ID_t1, Opis)
VALUES(1, 1, 'nešto za tebelu 2')
commit transakcije ako je sve uspješno prošlo
inače roolback
E problem nastaje kod izvršavanja ove procedure, zato što mi javi grešku o narušavanju
stranog ključa, tj da pokušavam u tabelu_2 upisati vrijednost u polje ID_t1 koja još
uvijek ne postoji u tabeli_1.
Što i jeste tačno jer prvi insert još uvijek nije commit-an. Mene sad interesuje jel' postoji
mogućnost da se riješi ovaj problem bez razvlašćivanja stranog ključa uz zadržavanje transakcije????
[Ovu poruku je menjao lare dana 12.10.2010. u 21:34 GMT+1]