[ CallMeSaMaster @ 23.12.2007. 23:31 ] @
| Da li , i ako da, kako?, moze da se sa jednim statementom brisu podaci iz 2 tabele istovremeneo. On sto sigurno znam jeste da u obje tabele postoji to sto zelim brisati. Znaci imam tabelu "prva" i tabelu "druga". U obje ove tabele postoji kolona koja se zove "tID". Pretpostavimo da postoji tID = 1 u obje tabele.
Kako mogu jednim statementom da obrisem recorde u obje tabele.
Probao sam nesto ovog tipa:
Delete from prva, druga where tID=1 ali ne fercera.... |
[ M E N E @ 24.12.2007. 07:20 ] @
Tvoj problem je opstiji, ali recimo, ako imas FK iz jedne u drugu, treba da ga deklarises kao CASCADE (on delete)
To bi znacilo ako je PK tID u [T1], a polje tID u [T2] je FK kji referencira [T1], onda kad obrises red u tabeli primarnog kljuca [T1], brisu se SVI REDOVI iz [T2] cije je polje tID=T1.tID iz obrisanog reda
Uh, sad sam procitao i mozda sam malo zbunio, ali nisam slagao :-)
[ Koce @ 24.12.2007. 09:11 ] @
Da, mozes preko spoljnih kljuceva, sa kaskadnim delete, a mozes i preko triggera na delete, al se to odnosi samo ako ti svaki put kad brises iz tab1 treba i brisanje iz tab2! Ako to zelis samo po nekad, onda moras da poses delete iz tab1, pa delete iz tab2, kako drugacije on da zna kad zelis a kad ne?
[ NPGD @ 04.01.2008. 08:25 ] @
Ma kazes mu samo.......
DELETE * FROM t1
Where ID = (DELETE * From t2
Where ID = 1);
Upalice.......valjda..........
Ali nema smisla brsati prvo PK pa onda FK .....nego obrnuto .........
Pozz.........
[ Nebojsa111 @ 11.01.2008. 13:45 ] @
Mozes ovo da resis i upotrebom INSTEAD OF DELETE triggera... Mozes da napises logiku u njemu koja ce se desiti kad obrises nesto iz tabele...
Code:
CREATE TRIGGER trigger1 ON tabela1
INSTEAD OF DELETE
AS
BEGIN
...
...
END
[ M E N E @ 11.01.2008. 14:14 ] @
hm
onda bolje
after delete
u tabeli1, sto ce znaciti "kad obrises slog u tabeli1, onda..." pa napises sta.
Ali... trigeri su spori
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.