[mysql] FOREIGN KEY - ON UPDATE

0

Witam

Szukam jakiś informacji na temat kluczy obcych i działania opcji ON
UPDATE w mysql. Poczytałem jak baza reaguje w przypadku ON DELETE (w
manualu), ale nie moge przykumać o co chodzi z tym UPDATE. Mój
angielski kuleje, a po polsku nic ciekawego w necie nie znalazłem. Może
zna ktos jakiś link gdzie ON UPDATE będzie wyjaśnione, ewentualnie może
w paru zdaniach wytłumaczyć :)

Serdecznie dziękuje za ewentualną pomoc

DeXtoR

0

Oczywiście wiesz, że nie wolno Ci użyć MyISAM bo wtedy nie istnieje coś takiego, jak klucze obce - wtedy MySQL to tylko szybki parser pliczków bez praktycznie żadnych możliwości bazodanowych.

0

Oczywiście wiesz, że nie wolno Ci użyć MyISAM

gdybym o tym nie wiedział to nawet bym nie doszedł do problemu "co kurde robi ten update" :D

delete to wiem że jak RESTRICT to nie pozwala usunąć rekordu gdy w podrzędnej tabeli jest jakiś rekord powiązany, jak CASCADE to usuwa wszystkie powiązane w tabeli podrzędnej, ale co robi UPDATE jest dla mnie zagadką :)

0

Wyobraz sobie tabele z numerami telefonu w jakiejs pizzerii ktore to numery beda kluczem glownym (poza tym beda inne dane uzytkownika)

Druga tabela relacyjnie powiazana z pierwsza to tabela zamowien czyli kto jakiego dnia na jaka kwote.

No i jest uzytkownik Abacki ktory ma numer telefonu 555-55-55
Mozemy wiec przeszukac w tabeli zamowien wszystko co kiedykolwiek zamowil, podajac jego numer telefonu.

Jesli natomiast zmienisz jemu numer na 444-44-44 juz nie wyszukasz jego wypozyczen, chyba ze ON UPDATE przy zmianie numeru z 555-55-55 na 444-44-44 zmieni tez numery w tabeli zamowien.

Proste :D
Nie bylo by problemu gdyby wiazac uzytkownika z wypozyczeniami po niezmienialnym numerze ID (autoincrement) lub ewentualnie po peselu.

Pozdrawiam

0

aaa, czyli zmiana klucza podstawowego w tabeli nadrzędnej zmieni klucz obcy w tabeli podrzędnej

czasem na coś oczywistego trudno wpaść :)

Dzięki za pomoc

Dextor

1 użytkowników online, w tym zalogowanych: 0, gości: 1