To nieporozumienie.UNIQUE
ograniczenie działa dokładnie czego chcesz. Wiele NULL
wartości mogą współistnieć w zdefiniowanej kolumnie UNIQUE
.
Instrukcja:
Ogólnie ograniczenie przez unikalność jest naruszane, gdy w tabeli znajduje się więcej niż jeden wiersz, w którym wartości wszystkich kolumn objętych ograniczeniem są równe. Jednak w tym porównaniu dwie wartości null nie są uważane za równe. Oznacza to, że nawet w obecności unikalnego ograniczenia możliwe jest przechowywanie zduplikowanych wierszy zawierających wartość null w co najmniej jednym z ograniczonych słupów. To zachowanie jest zgodne ze standardem SQL, ale słyszeliśmy, że inne bazy danych SQL mogą nie przestrzegać tej zasady. Dlatego należy zachować ostrożność podczas tworzenia aplikacji, które mają być przenośne.
Pogrubiony nacisk na moje.
Pamiętaj, że typy znaków pozwalają na pusty ciąg (''
), czyli nie NULL
wartości i wywołałby unikalne naruszenie, tak jak każda inna wartość niepusta, gdy zostanie wprowadzona w więcej niż jednym wierszu.