logo

Unieke MySQL-sleutel

Een unieke sleutel in MySQL is een enkel veld of een combinatie van velden die ervoor zorgen dat alle waarden die in de kolom worden opgeslagen uniek zijn. Het betekent dat een kolom niet kan worden opgeslagen dubbele waarden . De e-mailadressen en rolnummers van studenten in de tabel 'student_info' of het contactnummer van werknemers in de tabel 'Employee' moeten bijvoorbeeld uniek zijn.

c++ ingesteld

Met MySQL kunnen we meer dan één kolom met UNIEKE beperking in een tabel gebruiken. Het kan accepteren a nul waarde, maar MySQL stond slechts één nulwaarde per kolom toe. Het zorgt voor de integriteit van de kolom of groep kolommen om verschillende waarden in een tabel op te slaan.

Behoeften aan een unieke sleutel

  • Het is handig om te voorkomen dat de twee records identieke waarden in de kolom opslaan.
  • Het slaat alleen afzonderlijke waarden op die de integriteit en betrouwbaarheid van de database behouden voor toegang tot de informatie op een georganiseerde manier.
  • Het werkt ook met een externe sleutel om het unieke karakter van een tabel te behouden.
  • Het kan een nulwaarde in de tabel bevatten.

Syntaxis

De volgende syntaxis wordt gebruikt om een ​​unieke sleutel te maken MySQL .

Als we slechts één unieke sleutelkolom in een tabel willen maken, gebruik dan de onderstaande syntaxis:

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

Als we meer dan één unieke sleutelkolom in een tabel willen maken, gebruik dan de onderstaande syntaxis:

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

Als we de naam voor een unieke beperking niet hebben opgegeven, genereert MySQL automatisch een naam voor deze kolom. Het wordt dus aanbevolen om de beperkingsnaam te gebruiken bij het maken van een tabel.

Parameterverklaring

In de volgende tabel worden de parameters gedetailleerd uitgelegd.

Parameternaam Beschrijvingen
tafel naam Het is de naam van de tabel die we gaan maken.
col1, col2 Het zijn de kolomnamen die in de tabel voorkomen.
beperkingsnaam Het is de naam van de unieke sleutel.
kolomnaam(en) Het zijn de kolomnamen die een unieke sleutel zullen zijn.

Uniek sleutelvoorbeeld

In het volgende voorbeeld wordt uitgelegd hoe een unieke sleutel in MySQL wordt gebruikt.

Met deze verklaring wordt een tabel gemaakt ' Student2 ' met een UNIEKE beperking:

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

Voer vervolgens de onderstaande invoegquery's uit om te begrijpen hoe het werkt:

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

Uitvoer

In de onderstaande uitvoer kunnen we zien dat de eerste INSERT-query wordt correct uitgevoerd, maar de tweede instructie mislukt en geeft een foutmelding die zegt: Dupliceer invoer '1' voor sleutel Stud_ID.

Unieke MySQL-sleutel

Als u de unieke sleutel wilt definiëren op meerdere kolommen , gebruik de onderstaande query:

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

In de uitvoer kunnen we zien dat de unieke sleutelwaarde twee kolommen bevat Rol_nr En E-mail .

Unieke MySQL-sleutel

Om dit te verifiëren, voert u de volgende instructie uit:

 mysql> SHOW INDEX FROM Student3; 

Hier kunnen we zien dat de unieke beperking met succes aan de tabel is toegevoegd:

Unieke MySQL-sleutel

DROP unieke sleutel

Met de ALTER TABLE-instructie kunnen we ook de unieke sleutel uit de tabel verwijderen. De volgende syntaxis wordt gebruikt om de unieke sleutel te verwijderen:

 ALTER TABLE table_name DROP INDEX constraint_name; 

In de bovenstaande syntaxis wordt de tafel naam is de naam van de tabel die we willen wijzigen, en beperkingsnaam is de naam van de unieke sleutel die we gaan verwijderen.

Voorbeeld

Met deze verklaring wordt de uc_rollno_email beperking permanent uit de tabel verwijderen.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

We kunnen de SHOW INDEX-instructie hiervoor uitvoeren.

Unieke sleutel met behulp van ALTER TABLE-instructie

Met deze verklaring kunnen we de wijziging in de bestaande tabel uitvoeren. Soms willen we een unieke sleutel toevoegen aan de kolom van een bestaande tabel; vervolgens wordt deze instructie gebruikt om de unieke sleutel voor die kolom toe te voegen.

Syntaxis

Hieronder volgt de syntaxis van de ALTER TABLE-instructie om een ​​unieke sleutel toe te voegen:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Voorbeeld

Met deze verklaring wordt een tabel gemaakt ' Studenten3 ' die geen unieke sleutelkolom hebben in de tabeldefinitie.

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

Als we na het maken van een tabel een unieke sleutel aan deze tabel willen toevoegen, moeten we de ALTER TABLE-instructie uitvoeren, zoals hieronder:

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

We kunnen de uitvoer zien waarin beide instructies met succes zijn uitgevoerd.

Unieke MySQL-sleutel

Om dit te verifiëren, voert u de volgende instructie uit:

 mysql> SHOW INDEX FROM Student3; 

Hier kunnen we zien dat de unieke beperking met succes aan de tabel is toegevoegd:

Unieke MySQL-sleutel