logo

Egyedi MySQL kulcs

Az egyedi kulcs a MySQL-ben egyetlen mező vagy mezők kombinációja, amely biztosítja, hogy az oszlopban tárolt összes érték egyedi legyen. Ez azt jelenti, hogy egy oszlop nem tárolható duplikált értékek . Például a hallgatók e-mail címének és névjegyzékszámának a „student_info” táblában vagy az alkalmazottak elérhetőségi számának az „Alkalmazott” táblázatban egyedinek kell lennie.

python generál uuid

A MySQL lehetővé teszi, hogy egynél több oszlopot használjunk EGYEDI megszorítással egy táblázatban. El tudja fogadni a nulla érték, de a MySQL oszloponként csak egy null értéket engedélyezett. Biztosítja a sértetlenség oszlopban vagy oszlopcsoportban, hogy különböző értékeket tároljon egy táblázatban.

Egyedi kulcs igénye

  • Hasznos, ha megakadályozza, hogy a két rekord azonos értékeket tároljon az oszlopban.
  • Csak különálló értékeket tárol, amelyek fenntartják az adatbázis integritását és megbízhatóságát az információk szervezett módon történő eléréséhez.
  • Idegen kulccsal is működik a tábla egyediségének megőrzésében.
  • Tartalmazhat null értéket a táblázatban.

Szintaxis

A következő szintaxist használjuk egyedi kulcs létrehozására MySQL .

Ha csak egy egyedi kulcsoszlopot szeretnénk létrehozni egy táblázatban, használja az alábbi szintaxist:

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

Ha egynél több egyedi kulcsoszlopot szeretnénk létrehozni egy táblázatban, használja az alábbi szintaxist:

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

Ha nem adtuk meg az egyedi megszorítás nevét, a MySQL automatikusan létrehoz egy nevet ennek az oszlopnak. Ezért ajánlatos a megszorítás nevét használni a táblázat létrehozásakor.

Paraméter magyarázata

Az alábbi táblázat részletesen ismerteti a paramétereket.

Paraméter neve Leírások
táblázat_neve Ez annak a táblának a neve, amelyet létrehozunk.
oszlop1, oszlop2 Ez a táblázatban szereplő oszlopnevek.
megszorítás_neve Ez az egyedi kulcs neve.
oszlop_neve(i) Az oszlopnév(ek) lesz egyedi kulcs.

Egyedi kulcs példa

A következő példa bemutatja, hogyan használnak egyedi kulcsot a MySQL-ben.

Ez az utasítás egy táblázatot hoz létre Diák 2 ' EGYEDI megszorítással:

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

Ezután hajtsa végre az alább felsorolt ​​beszúrási lekérdezéseket, hogy megértse, hogyan működik:

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

Kimenet

Az alábbi kimenetben láthatjuk, hogy az első INSERT lekérdezés helyesen hajtódik végre, de a második utasítás meghiúsul, és a következő hibaüzenetet küldi: „1” bejegyzés megkettőzése a Stud_ID kulcshoz.

Egyedi MySQL kulcs

Ha meg szeretné határozni az egyedi kulcsot több oszlop , használja a lekérdezést az alábbiak szerint:

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

A kimenetben láthatjuk, hogy az egyedi kulcsérték két olyan oszlopot tartalmaz, amelyek vannak Roll_No és Email .

Egyedi MySQL kulcs

Ennek ellenőrzéséhez hajtsa végre a következő utasítást:

 mysql> SHOW INDEX FROM Student3; 

Itt láthatjuk, hogy az egyedi megszorítás sikeresen bekerült a táblázatba:

Egyedi MySQL kulcs

DROP egyedi kulcs

Az ALTER TABLE utasítás azt is lehetővé teszi, hogy kidobjuk az egyedi kulcsot a táblából. A következő szintaxist használják az egyedi kulcs eldobására:

 ALTER TABLE table_name DROP INDEX constraint_name; 

A fenti szintaxisban a táblázat_neve a módosítani kívánt tábla neve, és megszorítás_neve annak az egyedi kulcsnak a neve, amelyet eltávolítani fogunk.

Példa

Ez a kijelentés eltávolítja a uc_rollno_email kényszert az asztalról véglegesen.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Erre is végrehajthatjuk a SHOW INDEX utasítást.

Egyedi kulcs az ALTER TABLE utasítás használatával

Ez az utasítás lehetővé teszi számunkra, hogy módosítsuk a meglévő táblázatot. Néha egyedi kulcsot szeretnénk hozzáadni egy meglévő tábla oszlopához; majd ezt az utasítást használja az oszlop egyedi kulcsának hozzáadásához.

Szintaxis

A következő az ALTER TABLE utasítás szintaxisa egy egyedi kulcs hozzáadásához:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Példa

Ez az utasítás létrehoz egy táblázatot Diákok 3 amelyeknek nincs egyedi kulcsoszlopa a tábladefinícióban.

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

Ha egy tábla létrehozása után egyedi kulcsot szeretnénk hozzáadni ehhez a táblához, akkor az ALTER TABLE utasítást az alábbiak szerint kell végrehajtanunk:

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

Láthatjuk a kimenetet, ahol mindkét utasítás sikeresen végrehajtódott.

Egyedi MySQL kulcs

Ennek ellenőrzéséhez hajtsa végre a következő utasítást:

 mysql> SHOW INDEX FROM Student3; 

Itt láthatjuk, hogy az egyedi megszorítás sikeresen bekerült a táblázatba:

Egyedi MySQL kulcs