Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sta je sve obrisano i kad

[es] :: MySQL :: Sta je sve obrisano i kad

[ Pregleda: 1452 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.static.kdsinter.net.



Profil

icon Sta je sve obrisano i kad10.08.2011. u 17:53 - pre 153 meseci
Bakcem se sa sledecim problemom.

Imam 2 tabele. Recimo A i B.
Tabela B ima spoljni kljuc. Takodje sam definisao ogranicenje da ako se nesto brise iz tabele A onda se automatski brise i sve iz tabele B (tj. ON DELETE CASCADE...)

Ovo radi ok.

E sad ja zelim da svako brisanje iz ovih tabela lognem u neku trecu tabelu. Ako se brise iz A onda bi da lognem taj obrisani slog iz A ali takodje i sve slogove iz tabele B koji su povezanisa sa slogom iz A. Naravno ako se brisa samo nesto iz Tabele B onda se samo to loguje.

Kad kazem, loguje mislim na obican INSERT u neku trecu tabelu.

Problem sam napao sa Triggerima. Postavio sam triggere na obe tabele koji se okidaju svaki put kada se nesto brise i to radi samo ako brisem iz B.
U slucaju da brisem iz tabele A, okine se triger za tabelu A i to brisanje se logne ali se ne okidaju triggeri za slogove iz tabele B, koji su povezani sa obrisanim slogom iz tabele A . Dakle krajnji rezultat koji dobijem je obrisan i "logovan" slog iz tabele A. Obrisani slogovi iz tabele B ali nisu nigde logovana ta brisanja.

Da li neko ima neku ideju?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sta je sve obrisano i kad10.08.2011. u 23:38 - pre 153 meseci
koja verzija?
sto ne napravis mali test case da moze da se copy/paste u razne verzije da se proba kako se ponasa?

elem ako pogledas: http://dev.mysql.com/doc/refma...b-foreign-key-constraints.html

Citat:

CASCADE: Delete or update the row from the parent table and automatically delete or update the matching rows in the child table. Both ON DELETE CASCADE and ON UPDATE CASCADE are supported. Between two tables, do not define several ON UPDATE CASCADE clauses that act on the same column in the parent table or in the child table.
Note

Currently, cascaded foreign key actions do not activate triggers.


EDIT: ako se dobro secam, tako je za "SVE" verzije za sada (i 5.6) ... znam da sam negde video worklog koji prica o ovome al da me ubijes ne secam se


[Ovu poruku je menjao bogdan.kecman dana 11.08.2011. u 00:48 GMT+1]
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Sta je sve obrisano i kad11.08.2011. u 07:12 - pre 153 meseci
El ne može A trigger da evidentira sve redove u tabeli B koji su povezani ključen sa redom iz A tabele koji se trenutno briše?
"Common sense is not so common." - Voltaire
 
Odgovor na temu

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.static.kdsinter.net.



Profil

icon Re: Sta je sve obrisano i kad11.08.2011. u 11:00 - pre 153 meseci
Naravno da moze ali sta ako je recimo PK tabele B FK neke trece tabele....

Resenje bi trebalo da bude univerzalno....


@Kecman
Tvoja poslednja recenica me bas rastuzila :( buuuuuhuuuuuuuuu.

Bice da cu ipak morati da upotrebim i PHP :(((((


tnx. momci
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sta je sve obrisano i kad11.08.2011. u 13:32 - pre 153 meseci
problem je u tome kako mysql radi sa trigerima, morala bi da se pravi neka varijanta sa deffered trigerima da bi to radilo, dakle prilican redizajn mysql servera sto se nece desiti u blizoj buducnosti .. dakle ili sto ti kazes php ili sto Shinhan kaze - u tom prvom trigeru popamtis sve sto "ce se desiti" umesto samo ono sto se "desava" :) ..
 
Odgovor na temu

[es] :: MySQL :: Sta je sve obrisano i kad

[ Pregleda: 1452 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.