logo

MySQL unik nøkkel

En unik nøkkel i MySQL er et enkelt felt eller en kombinasjon av felt som sikrer at alle verdier som lagres i kolonnen vil være unike. Det betyr at en kolonne ikke kan lagre dupliserte verdier . For eksempel bør e-postadressene og rullenumrene til studenter i 'student_info'-tabellen eller kontaktnummeret til ansatte i 'Ansatt'-tabellen være unike.

java visualizer

MySQL lar oss bruke mer enn én kolonne med UNIK begrensning i en tabell. Den kan godta en null verdi, men MySQL tillot bare én nullverdi per kolonne. Det sikrer integritet av kolonnen eller gruppen av kolonner for å lagre forskjellige verdier i en tabell.

Behov for unik nøkkel

  • Det er nyttig for å forhindre at de to postene lagrer identiske verdier i kolonnen.
  • Den lagrer kun distinkte verdier som opprettholder integriteten og påliteligheten til databasen for å få tilgang til informasjonen på en organisert måte.
  • Det fungerer også med en fremmednøkkel for å bevare det unike ved et bord.
  • Den kan inneholde nullverdi i tabellen.

Syntaks

Følgende syntaks brukes til å lage en unik nøkkel inn MySQL .

Hvis vi bare vil lage én unik nøkkelkolonne i en tabell, bruk syntaksen som nedenfor:

 CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... ); 

Hvis vi ønsker å lage mer enn én unik nøkkelkolonne i en tabell, bruk syntaksen som nedenfor:

 CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) ); 

Hvis vi ikke har spesifisert navnet for en unik begrensning, genererer MySQL automatisk et navn for denne kolonnen. Så det anbefales å bruke begrensningsnavnet mens du oppretter en tabell.

Parameter Forklaring

Tabellen nedenfor forklarer parameterne i detalj.

Parameternavn Beskrivelser
tabellnavn Det er navnet på bordet vi skal lage.
kol1, kol2 Det er kolonnenavnene som inneholder i tabellen.
constraint_name Det er navnet på den unike nøkkelen.
kolonnenavn(e) Det er kolonnenavnet(e) som skal være en unik nøkkel.

Unikt nøkkeleksempel

Følgende eksempel forklarer hvordan en unik nøkkel brukes i MySQL.

Denne setningen lager en tabell ' Student 2 ' med en UNIK begrensning:

 CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) ); 

Deretter utfører du innsettingsspørringene som er oppført nedenfor for å forstå hvordan det fungerer:

 mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas'); 

Produksjon

I utgangen nedenfor kan vi se at den første INSERT spørring kjøres riktig, men den andre setningen mislykkes og gir en feilmelding som sier: Duplicate entry '1' for key Stud_ID.

MySQL unik nøkkel

Hvis du ønsker å definere den unike nøkkelen på flere kolonner , bruk søket som nedenfor:

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) ); 

I utgangen kan vi se at den unike nøkkelverdien inneholder to kolonner som er Roll_No og E-post .

MySQL unik nøkkel

For å bekrefte dette, utfør følgende setning:

 mysql> SHOW INDEX FROM Student3; 

Her kan vi se at den unike begrensningen har blitt lagt til i tabellen:

MySQL unik nøkkel

DROP Unik nøkkel

ALTER TABLE-setningen lar oss også slippe den unike nøkkelen fra tabellen. Følgende syntaks brukes til å slippe den unike nøkkelen:

 ALTER TABLE table_name DROP INDEX constraint_name; 

I syntaksen ovenfor er tabellnavn er navnet på tabellen som vi ønsker å endre, og constraint_name er navnet på den unike nøkkelen vi skal fjerne.

Eksempel

Denne uttalelsen vil fjerne uc_rollno_email begrensning fra tabellen permanent.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Vi kan utføre SHOW INDEX-setningen til dette.

Unik nøkkel som bruker ALTER TABLE-erklæring

Denne uttalelsen lar oss gjøre endringen i den eksisterende tabellen. Noen ganger ønsker vi å legge til en unik nøkkel til kolonnen i en eksisterende tabell; deretter brukes denne setningen til å legge til den unike nøkkelen for den kolonnen.

Syntaks

Følgende er syntaksen til ALTER TABLE-setningen for å legge til en unik nøkkel:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Eksempel

Denne setningen lager en tabell ' Studenter 3 ' som ikke har noen unik nøkkelkolonne i tabelldefinisjonen.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) ); 

Etter å ha opprettet en tabell, hvis vi ønsker å legge til en unik nøkkel til denne tabellen, må vi utføre ALTER TABLE-setningen som nedenfor:

 mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email); 

Vi kan se utdataene der begge setningene ble utført.

MySQL unik nøkkel

For å bekrefte dette, utfør følgende setning:

 mysql> SHOW INDEX FROM Student3; 

Her kan vi se at den unike begrensningen har blitt lagt til i tabellen:

MySQL unik nøkkel