Ustawienie ograniczenia klucza obcego na 0 nie jest dobrym pomysłem, ponieważ jeśli tak zrobisz, baza danych nie upewni się, że nie narusza integralności referencyjnej. Może to prowadzić do niedokładnych, wprowadzających w błąd lub niekompletnych danych.
Tworzysz klucz obcy z jakiegoś powodu: ponieważ wszystkie wartości w kolumnie potomnej będą takie same jak wartość w kolumnie macierzystej. Jeśli nie ma ograniczeń klucza obcego, wiersz potomny może mieć wartość, która nie znajduje się w wierszu nadrzędnym, co może prowadzić do niedokładnych danych.
Załóżmy na przykład, że masz witrynę internetową, na której studenci mogą się zalogować, a każdy uczeń musi zarejestrować się jako konto. Masz jedną tabelę dla identyfikatorów użytkowników, z identyfikatorem użytkownika jako kluczem podstawowym; i kolejna tabela dla kont studentów, z identyfikatorem studenta jako kolumną. Ponieważ każdy uczeń musi mieć identyfikator użytkownika, sensowne byłoby, aby identyfikator studenta z tabeli kont studentów był kluczem obcym, który odwołuje się do identyfikatora użytkownika klucza podstawowego w tabeli identyfikatorów użytkowników. Jeśli nie ma sprawdzania klucza obcego, uczeń może mieć identyfikator studenta i identyfikator użytkownika, co oznacza, że uczeń może uzyskać konto bez bycia użytkownikiem, co jest błędne.
Wyobraź sobie, że dzieje się to z dużą ilością danych. Dlatego potrzebujesz sprawdzenia klucza obcego.
Najlepiej dowiedzieć się, co powoduje błąd. Najprawdopodobniej próbujesz usunąć z wiersza nadrzędnego bez usuwania z wiersza podrzędnego. Spróbuj usunąć z wiersza podrzędnego przed usunięciem z wiersza nadrzędnego.