Jedinečný kľúč v MySQL je jedno pole alebo kombinácia polí, ktoré zabezpečujú, že všetky hodnoty, ktoré sa majú uložiť do stĺpca, budú jedinečné. To znamená, že stĺpec nemôže ukladať duplicitné hodnoty . Napríklad e-mailové adresy a čísla študentov v tabuľke 'student_info' alebo kontaktný počet zamestnancov v tabuľke 'Employee' by mali byť jedinečné.
bublinový druh pytóna
MySQL nám umožňuje použiť viac ako jeden stĺpec s obmedzením UNIQUE v tabuľke. Môže akceptovať a nulový hodnota, ale MySQL povolila iba jednu nulovú hodnotu na stĺpec. Zabezpečuje to bezúhonnosť stĺpca alebo skupiny stĺpcov na uloženie rôznych hodnôt do tabuľky.
Potreba jedinečného kľúča
- Je to užitočné na zabránenie tomu, aby dva záznamy ukladali identické hodnoty do stĺpca.
- Ukladá iba odlišné hodnoty, ktoré zachovávajú integritu a spoľahlivosť databázy pre prístup k informáciám organizovaným spôsobom.
- Pri zachovaní jedinečnosti tabuľky pracuje aj s cudzím kľúčom.
- Môže obsahovať nulovú hodnotu do tabuľky.
Syntax
Nasledujúca syntax sa používa na vytvorenie jedinečného kľúča MySQL .
Ak chceme v tabuľke vytvoriť iba jeden jedinečný kľúčový stĺpec, použite syntax, ako je uvedené nižšie:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Ak chceme v tabuľke vytvoriť viac ako jeden jedinečný kľúčový stĺpec, použite syntax, ako je uvedené nižšie:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Ak sme nešpecifikovali názov pre jedinečné obmedzenie, MySQL vygeneruje názov pre tento stĺpec automaticky. Preto sa pri vytváraní tabuľky odporúča použiť názov obmedzenia.
Vysvetlenie parametra
Nasledujúca tabuľka podrobne vysvetľuje parametre.
| Názov parametra | Popisy |
|---|---|
| názov_tabuľky | Je to názov tabuľky, ktorú vytvoríme. |
| stĺpec1, stĺpec2 | Sú to názvy stĺpcov, ktoré obsahuje tabuľka. |
| názov_obmedzenia | Je to názov jedinečného kľúča. |
| column_name(s) | Ide o názvy stĺpcov, ktoré budú jedinečným kľúčom. |
Príklad jedinečného kľúča
Nasledujúci príklad vysvetľuje, ako sa v MySQL používa jedinečný kľúč.
Tento príkaz vytvorí tabuľku ' Študent2 “ s UNIKÁTNYM obmedzením:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Potom vykonajte nasledujúce dotazy na vloženie, aby ste pochopili, ako to funguje:
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');
Výkon
V nižšie uvedenom výstupe môžeme vidieť, že prvý INSERT dotaz vykoná sa správne, ale druhý príkaz zlyhá a zobrazí chybu, ktorá hovorí: Duplicitný záznam '1' pre kľúč Stud_ID.
Ak chcete definovať jedinečný kľúč na viac stĺpcov , použite dopyt, ako je uvedené nižšie:
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) );
Vo výstupe môžeme vidieť, že jedinečná hodnota kľúča obsahuje dva stĺpce, ktoré sú Roll_No a Email .
Ak to chcete overiť, vykonajte nasledujúce vyhlásenie:
mysql> SHOW INDEX FROM Student3;
Tu vidíme, že jedinečné obmedzenie sa úspešne pridalo do tabuľky:
Jedinečný kľúč DROP
Príkaz ALTER TABLE nám tiež umožňuje vypustiť jedinečný kľúč z tabuľky. Na zrušenie jedinečného kľúča sa používa nasledujúca syntax:
ALTER TABLE table_name DROP INDEX constraint_name;
Vo vyššie uvedenej syntaxi je názov_tabuľky je názov tabuľky, ktorú chceme upraviť, a názov_obmedzenia je názov jedinečného kľúča, ktorý sa chystáme odstrániť.
Príklad
Toto vyhlásenie odstráni uc_rollno_email obmedzenie z tabuľky natrvalo.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Na to môžeme vykonať príkaz SHOW INDEX.
Jedinečný kľúč pomocou príkazu ALTER TABLE
Tento príkaz nám umožňuje vykonať úpravu do existujúcej tabuľky. Niekedy chceme pridať jedinečný kľúč do stĺpca existujúcej tabuľky; potom sa tento príkaz použije na pridanie jedinečného kľúča pre daný stĺpec.
Syntax
Nasleduje syntax príkazu ALTER TABLE na pridanie jedinečného kľúča:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Príklad
Tento príkaz vytvorí tabuľku ' Študenti 3 ', ktoré nemajú v definícii tabuľky žiadny jedinečný kľúčový stĺpec.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Po vytvorení tabuľky, ak chceme do tejto tabuľky pridať jedinečný kľúč, musíme vykonať príkaz ALTER TABLE, ako je uvedené nižšie:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Vidíme výstup, kde sa oba príkazy úspešne vykonali.
Ak to chcete overiť, vykonajte nasledujúce vyhlásenie:
mysql> SHOW INDEX FROM Student3;
Tu vidíme, že jedinečné obmedzenie sa úspešne pridalo do tabuľky: