Problem:
Du vil gerne gøre en given kolonne unik i en given tabel i en database.
Eksempel:
Vi vil gerne lave kolonnen name
unik i tabellen product
. Forespørgslen nedenfor præsenterer en måde at gøre det på.
Løsning 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Diskussion:
I dette eksempel en given kolonne (kolonnen name
) blev gjort unik ved at tilføje klausulen UNIQUE i slutningen af definitionskolonnen (name VARCHAR(100) UNIQUE
). Denne nye tabel (i vores eksempel:product
) vil indeholde kolonnen (i vores eksempel:name
), der gemmer unikke værdier i rækker.
Løsning 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Diskussion:
I dette eksempel tabellen product
eksisterer allerede. Vi ønsker at ændre denne tabel og tilføje en unik begrænsning til kolonne name
. Dette er muligt ved at bruge ALTER TABLE
klausul. Først skriver vi ALTER TABLE, derefter angiver vi navnet på tabellen (i vores eksempel:product
), og derefter tilføjer vi klausulen ADD CONSTRAINT
med navnet på den unikke begrænsning (i vores eksempel:UQ_product_name
). Dette efterfølges af det UNIKKE søgeord med kolonne/kolonner (i vores eksempel er det kolonne:name
) i parentes.
Du kan også lave en unik begrænsning med flere kolonner. Sådan gør du:
Løsning 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Diskussion:
I dette eksempel ændres tabelproduktet ved at bruge ALTER TABLE
klausulen og klausulen ADD CONSTRAINT med navnet på den unikke begrænsning (i vores eksempel:UQ_product_name_producer
) efterfulgt af UNIQUE
søgeord med listen over kolonner (i vores eksempel er der to kolonner:name
og producer
) i parentes.