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: