Problem:
Chcesz, aby dana kolumna była unikalna w danej tabeli w bazie danych.
Przykład:
Chcielibyśmy, aby kolumna name unikalny w tabeli product . Poniższe zapytanie przedstawia jeden ze sposobów na zrobienie tego.
Rozwiązanie 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Dyskusja:
W tym przykładzie dana kolumna (kolumna name ) został nadany unikatowy przez dodanie klauzuli UNIQUE na końcu kolumny definicji (name VARCHAR(100) UNIQUE ). Ta nowa tabela (w naszym przykładzie:product ) będzie zawierać kolumnę (w naszym przykładzie:name ), który przechowuje unikalne wartości w wierszach.
Rozwiązanie 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Dyskusja:
W tym przykładzie tabela product już istnieje. Chcemy zmodyfikować tę tabelę i dodać unikalne ograniczenie do kolumny name . Jest to możliwe za pomocą ALTER TABLE klauzula. Najpierw piszemy ALTER TABLE, następnie podajemy nazwę tabeli (w naszym przykładzie:product ), a następnie dodajemy klauzulę ADD CONSTRAINT z nazwą unikalnego ograniczenia (w naszym przykładzie:UQ_product_name ). Po nim następuje słowo kluczowe UNIQUE z kolumną/kolumnami (w naszym przykładzie jest to kolumna:name ) w nawiasach.
Możesz także utworzyć wielokolumnowe ograniczenie unikatowe. Oto jak:
Rozwiązanie 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Dyskusja:
W tym przykładzie produkt tabeli jest zmieniany za pomocą ALTER TABLE klauzulę i klauzulę ADD CONSTRAINT z nazwą ograniczenia przez unikalność (w naszym przykładzie:UQ_product_name_producer ), po którym następuje UNIQUE słowo kluczowe z listą kolumn (w naszym przykładzie mamy dwie kolumny:name i producer ) w nawiasach.