Cześć Wszystkim,
Tworzę niewielką bazę w celach dydaktycznych w MySQL Workbench. Po wygenerowaniu bazy, zmieniłem silnik kilku tabel na InnoDB. W kilku powiązanych tabelach ustawiłem restrict podczas aktualizacji i kasowania rekordu. Baza podczas kasowania rekordu działa prawidłowo i pilnuje powiązań, natomiast podczas aktualizacji nic się nie dzieje. MySQL dopuszcza aktualizację powiązanych rekordów?!? Gdzie mogłem popełnić błąd ? Moja wersja bazy to 5.5.28. Dzięki wszystkim zainteresowanym.
ok, nie było pytania. Mój błąd. Myślałem, że baza nie dopuści do zmiany kolumny "nazwa" a logika jest taka, że tylko kolumna z PK nie może zostać zmieniona.
Jak najlepiej rozwiązać następujący problem:
Mam bazę w której są tabele faktura, pozycja faktury i asortyment. Jeżeli jakiś asortyment załóżmy, że "domestos" został dodany do pozycji faktury to nie chciałbym aby można było usunąć go w tabeli asortyment, ale również nie chciałbym aby można było edytować jego dane, np cenę, nazwę itp. Powinien tego pilnować jakiś trigger, funkcja, czy sprawdzać to w aplikacji ???
"domestos" został dodany do pozycji faktury to nie chciałbym aby można było usunąć go w tabeli asortyment
Zakładasz klucz obcy.
nie chciałbym aby można było edytować jego dane, np cenę, nazwę itp.
Po prostu w aplikacji nie dajesz możliwości edycji.
ok, dzięki za zainteresowanie. Z edycją sobie poradziłem - w aplikacji ukrywam towar i tworzę w jego miejsce kopię z nowym ID