logo

MySQL unikke nøgle

En unik nøgle i MySQL er et enkelt felt eller en kombination af felter, der sikrer, at alle værdier, der gemmes i kolonnen, er unikke. Det betyder, at en kolonne ikke kan lagre duplikerede værdier . For eksempel skal e-mailadresser og rullenumre på studerende i tabellen 'student_info' eller kontaktnummer på medarbejdere i tabellen 'Medarbejder' være unikke.

sed kommando

MySQL giver os mulighed for at bruge mere end én kolonne med UNIK begrænsning i en tabel. Den kan acceptere en nul værdi, men MySQL tillod kun én null-værdi pr. kolonne. Det sikrer integritet af kolonnen eller gruppen af ​​kolonner for at gemme forskellige værdier i en tabel.

Behov for unik nøgle

  • Det er nyttigt til at forhindre de to poster i at gemme identiske værdier i kolonnen.
  • Den gemmer kun distinkte værdier, der opretholder databasens integritet og pålidelighed for at få adgang til informationen på en organiseret måde.
  • Det fungerer også med en fremmednøgle til at bevare det unikke ved et bord.
  • Den kan indeholde nulværdi i tabellen.

Syntaks

Følgende syntaks bruges til at skabe en unik nøgle ind MySQL .

Hvis vi kun vil oprette én unik nøglekolonne i en tabel, skal du bruge syntaksen som nedenfor:

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

Hvis vi ønsker at oprette mere end én unik nøglekolonne i en tabel, skal du bruge syntaksen som nedenfor:

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

Hvis vi ikke har angivet navnet for en unik begrænsning, genererer MySQL automatisk et navn til denne kolonne. Så det anbefales at bruge begrænsningsnavnet, mens du opretter en tabel.

Parameterforklaring

Følgende tabel forklarer parametrene i detaljer.

Parameternavn Beskrivelser
tabelnavn Det er navnet på bordet, vi skal lave.
col1, col2 Det er kolonnenavnene, der indeholder i tabellen.
constraint_name Det er navnet på den unikke nøgle.
kolonnenavn(e) Det er kolonnenavnene, der skal være en unik nøgle.

Unikt nøgleeksempel

Følgende eksempel forklarer, hvordan en unik nøgle bruges i MySQL.

Denne erklæring opretter en tabel ' Elev 2 ' med en UNIK begrænsning:

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

Udfør derefter indsættelsesforespørgslerne nedenfor for at forstå, hvordan det virker:

 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'); 

Produktion

I nedenstående output kan vi se, at den første INDSÆT forespørgsel udføres korrekt, men den anden sætning mislykkes og giver en fejl, der siger: Duplicate entry '1' for key Stud_ID.

MySQL unikke nøgle

Hvis du ønsker at definere den unikke nøgle på flere kolonner , brug forespørgslen 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 outputtet kan vi se, at den unikke nøgleværdi indeholder to kolonner, der er Rulle_Nr og E-mail .

MySQL unikke nøgle

For at bekræfte dette skal du udføre følgende sætning:

 mysql> SHOW INDEX FROM Student3; 

Her kan vi se, at den unikke begrænsning med succes er tilføjet i tabellen:

MySQL unik nøgle

DROP unik nøgle

ALTER TABLE-sætningen giver os også mulighed for at slippe den unikke nøgle fra tabellen. Følgende syntaks bruges til at slippe den unikke nøgle:

 ALTER TABLE table_name DROP INDEX constraint_name; 

I ovenstående syntaks er tabelnavn er navnet på den tabel, som vi vil ændre, og constraint_name er navnet på den unikke nøgle, vi skal fjerne.

Eksempel

Denne erklæring vil fjerne uc_rollno_email begrænsning fra tabellen permanent.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Vi kan udføre SHOW INDEX-sætningen til meget dette.

Unik nøgle ved hjælp af ALTER TABLE-erklæring

Denne erklæring giver os mulighed for at foretage ændringen i den eksisterende tabel. Nogle gange ønsker vi at tilføje en unik nøgle til kolonnen i en eksisterende tabel; derefter bruges denne sætning til at tilføje den unikke nøgle til den kolonne.

Syntaks

Følgende er syntaksen for ALTER TABLE-sætningen for at tilføje en unik nøgle:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Eksempel

Denne erklæring opretter en tabel ' Studerende 3 ', der ikke har nogen unik nøglekolonne i tabeldefinitionen.

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

Efter at have oprettet en tabel, hvis vi ønsker at tilføje en unik nøgle til denne tabel, skal vi udføre ALTER TABLE-sætningen som nedenfor:

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

Vi kan se outputtet, hvor begge sætninger blev udført med succes.

MySQL unikke nøgle

For at bekræfte dette skal du udføre følgende sætning:

 mysql> SHOW INDEX FROM Student3; 

Her kan vi se, at den unikke begrænsning med succes er tilføjet i tabellen:

MySQL unikke nøgle