logo

MySQL unik nyckel

En unik nyckel i MySQL är ett enda fält eller en kombination av fält som säkerställer att alla värden som lagras i kolumnen är unika. Det betyder att en kolumn inte kan lagras dubbletter av värden . Till exempel bör e-postadresser och rullnummer för studenter i tabellen 'student_info' eller kontaktnummer för anställda i tabellen 'Anställd' vara unika.

maskininlärningsmodeller

MySQL tillåter oss att använda mer än en kolumn med UNIK begränsning i en tabell. Den kan acceptera en null värde, men MySQL tillät endast ett nollvärde per kolumn. Det säkerställer integritet i kolumnen eller gruppen av kolumner för att lagra olika värden i en tabell.

Behov av unik nyckel

  • Det är användbart för att förhindra att de två posterna lagrar identiska värden i kolumnen.
  • Den lagrar endast distinkta värden som upprätthåller databasens integritet och tillförlitlighet för att få tillgång till informationen på ett organiserat sätt.
  • Det fungerar också med en främmande nyckel för att bevara det unika hos en tabell.
  • Den kan innehålla nullvärde i tabellen.

Syntax

Följande syntax används för att skapa en unik nyckel in MySQL .

Om vi ​​bara vill skapa en unik nyckelkolumn i en tabell, använd syntaxen enligt nedan:

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

Om vi ​​vill skapa mer än en unik nyckelkolumn i en tabell, använd syntaxen enligt nedan:

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

Om vi ​​inte har angett namnet för en unik begränsning, genererar MySQL automatiskt ett namn för denna kolumn. Så det rekommenderas att använda begränsningsnamnet när du skapar en tabell.

Parameter Förklaring

Följande tabell förklarar parametrarna i detalj.

Parameternamn Beskrivningar
tabellnamn Det är namnet på bordet som vi ska skapa.
kol1, kol2 Det är kolumnnamnen som innehåller i tabellen.
constraint_name Det är namnet på den unika nyckeln.
kolumnnamn Det är kolumnnamnen som kommer att vara en unik nyckel.

Unikt nyckelexempel

Följande exempel förklarar hur en unik nyckel används i MySQL.

Detta uttalande skapar en tabell ' Student 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) ); 

Utför sedan infogningsfrågorna nedan för att förstå hur det fungerar:

 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 utgången nedan kan vi se att den första INFOGA fråga körs korrekt, men den andra satsen misslyckas och ger ett felmeddelande som säger: Duplicera post '1' för nyckel Stud_ID.

MySQL unik nyckel

Om du vill definiera den unika nyckeln på flera kolumner , använd frågan enligt nedan:

 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 utgången kan vi se att det unika nyckelvärdet innehåller två kolumner som är Roll_No och E-post .

MySQL unik nyckel

För att verifiera detta, kör följande sats:

 mysql> SHOW INDEX FROM Student3; 

Här kan vi se att den unika begränsningen framgångsrikt har lagts till i tabellen:

MySQL unik nyckel

DROP unik nyckel

ALTER TABLE-satsen låter oss också ta bort den unika nyckeln från tabellen. Följande syntax används för att ta bort den unika nyckeln:

 ALTER TABLE table_name DROP INDEX constraint_name; 

I ovanstående syntax är tabellnamn är namnet på tabellen som vi vill ändra, och constraint_name är namnet på den unika nyckel vi ska ta bort.

Exempel

Detta uttalande kommer att ta bort uc_rollno_email begränsning från tabellen permanent.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Vi kan köra SHOW INDEX-satsen till detta.

Unik nyckel som använder ALTER TABLE-satsen

Detta uttalande tillåter oss att göra ändringen i den befintliga tabellen. Ibland vill vi lägga till en unik nyckel till kolumnen i en befintlig tabell; sedan används denna sats för att lägga till den unika nyckeln för den kolumnen.

Syntax

Följande är syntaxen för ALTER TABLE-satsen för att lägga till en unik nyckel:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Exempel

Detta uttalande skapar en tabell ' Studenter 3 ' som inte har någon unik nyckelkolumn i tabelldefinitionen.

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

Efter att ha skapat en tabell, om vi vill lägga till en unik nyckel till den här tabellen, måste vi köra ALTER TABLE-satsen enligt nedan:

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

Vi kan se utdata där båda satserna kördes framgångsrikt.

MySQL unik nyckel

För att verifiera detta, kör följande sats:

 mysql> SHOW INDEX FROM Student3; 

Här kan vi se att den unika begränsningen framgångsrikt har lagts till i tabellen:

MySQL unik nyckel