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.
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 .
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:
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.
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: