logo

Jedinečný kľúč MySQL

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.

Jedinečný kľúč MySQL

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 .

Jedinečný kľúč MySQL

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ľúč MySQL

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.

Jedinečný kľúč MySQL

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ľúč MySQL