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.