Krótka odpowiedź: Tak, może to być NULL lub duplikat Chcę wyjaśnić, dlaczego klucz obcy może wymagać wartości NULL, może być unikalny lub nie. Najpierw pamiętaj, że klucz obcy wymaga po prostu, aby wartość w tym polu istniała najpierw w innej tabeli (tabeli nadrzędnej). To wszystko, co FK jest z definicji.
Czy klucz obcy akceptuje wartość null?
Kluczowi obcemu można przypisać nazwę ograniczenia. … Klucz obcy zawierający wartości null nie może odpowiadać wartościom klucza nadrzędnego, ponieważ klucz nadrzędny z definicji nie może mieć wartości null. Jednak pusta wartość klucza obcego jest zawsze poprawna, niezależnie od wartości którejkolwiek z jego części niepustych.
Dlaczego wartości null są dozwolone w kluczu obcym?
Definiowanie relacji między tabelami nadrzędnymi i podrzędnymi
Brak ograniczeń w kluczu obcym Jeśli w kluczu obcym nie są zdefiniowane żadne inne ograniczenia, dowolna liczba wierszy w tabeli podrzędnej może odwoływać się do ta sama wartość klucza nadrzędnego Ten model dopuszcza wartości null w kluczu obcym.
Jak zezwolić na null w kluczu obcym?
Ponieważ ograniczenie klucza obcego wymaga, aby przywoływany klucz był niepowtarzalny, najlepiej, co możesz zrobić, to zezwolić na jeden wiersz z kluczem o wartości NULL. W takim przypadku będziesz musiał zamienić ograniczenie klucza podstawowego na ograniczenie unikatowe (lub indeks) i zezwolić na kolumnę Kraje. country_id ma wartość NULL.
Czy możemy wstawić wartości null w kolumnie klucza obcego?
Tak, Możesz zerować wartość w kolumnie klucza obcego.