[MySQL] Błędne działanie ON DELETE CASCADE


(CZiPEN) #1

Witam.

Napotkałem na dosyć poważny problem w działaniu ON DELETE CASCADE. Może coś źle zrobiłem, ale nie mogę dojść, gdzie ów błąd się znajduje. Przedstawię sprawę po kolei z obrazkami.

Widok projektu:

87519433.png

Najlepiej będzie jeśli przyglądniemy się tabelom modul_opisowy i modul_opisowy_zdjecia:

modul_opisowy:

89975424.png

modul_opisowy_zdjecia:

55173080.png

modul_opisowy_zdjecia relacje:

30825000.png

Błąd występuje podczas chęci usunięcia któregoś z akapitów z tabeli modul_opisowy, a objawia się tym, że czyści mi całą tabelę modul_opisowy_zdjecia nawet jeśli w tej drugiej id_akapitu jest inne od id usuwanego akapitu. Jeśli natomiast zmienię id w modul_opisowy to automatycznie zmieniają się odpowiednie wpisy w modul_opisowy_zdjecia nie ruszając pozostałych danych.

Z tego wynika tak jakby ON UPDATE CASCADE działało jak należy, a ON DELETE CASCADE już nie.

Z góry dzięki za wszelką próbę pomocy.


(slepciu) #2

Wrzuć kod sql do stworzenia tych tabel, wyeksportuj to.


(CZiPEN) #3

Problem rozwiązałem, ale nie do końca mnie to satysfakcjonuje. Musiałem zostawić samo powiązanie modul_opisowy.id - modul_opisowy_zdjecia.id_akapitu.