Problem:
Du skulle vilja göra en given kolumn unik i en given tabell i en databas.
Exempel:
Vi skulle vilja göra kolumnen name
unik i tabellen product
. Frågan nedan visar ett sätt att göra det.
Lösning 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Diskussion:
I det här exemplet en given kolumn (kolumnen name
) gjordes unik genom att lägga till satsen UNIQUE i slutet av definitionskolumnen (name VARCHAR(100) UNIQUE
). Den här nya tabellen (i vårt exempel:product
) kommer att innehålla kolumnen (i vårt exempel:name
) som lagrar unika värden i rader.
Lösning 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Diskussion:
I det här exemplet tabellen product
existerar redan. Vi vill modifiera den här tabellen och lägga till en unik begränsning i kolumnen name
. Detta är möjligt genom att använda ALTER TABLE
klausul. Först skriver vi ALTER TABLE, sedan listar vi namnet på tabellen (i vårt exempel:product
), och sedan lägger vi till satsen ADD CONSTRAINT
med namnet på den unika begränsningen (i vårt exempel:UQ_product_name
). Detta följs av det UNIKA nyckelordet med kolumn/kolumner (i vårt exempel är det kolumn:name
) inom parentes.
Du kan också skapa en unik begränsning med flera kolumner. Så här gör du:
Lösning 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Diskussion:
I det här exemplet ändras tabellprodukten genom att använda ALTER TABLE
sats och satsen ADD CONSTRAINT med namnet på den unika begränsningen (i vårt exempel:UQ_product_name_producer
) följt av UNIQUE
nyckelord med kolumnlistan (i vårt exempel finns det två kolumner:name
och producer
) inom parentes.