logo

Jedinečný klíč MySQL

Jedinečný klíč v MySQL je jedno pole nebo kombinace polí, které zajišťují, že všechny hodnoty, které se mají uložit do sloupce, budou jedinečné. To znamená, že sloupec nemůže ukládat duplicitní hodnoty . Například e-mailové adresy a seznamy studentů v tabulce 'student_info' nebo kontaktní počet zaměstnanců v tabulce 'Zaměstnanec' by měly být jedinečné.

tiskové pole v Javě

MySQL nám umožňuje používat v tabulce více než jeden sloupec s omezením UNIQUE. Může přijmout a nula hodnotu, ale MySQL povolovala pouze jednu hodnotu null na sloupec. Zajišťuje integrita sloupce nebo skupiny sloupců k uložení různých hodnot do tabulky.

Potřeby jedinečného klíče

  • Je užitečné zabránit tomu, aby dva záznamy ukládaly identické hodnoty do sloupce.
  • Ukládá pouze odlišné hodnoty, které udržují integritu a spolehlivost databáze pro přístup k informacím organizovaným způsobem.
  • Pracuje také s cizím klíčem při zachování jedinečnosti tabulky.
  • Může obsahovat hodnotu null do tabulky.

Syntax

K vytvoření jedinečného klíče se používá následující syntaxe MySQL .

Pokud chceme v tabulce vytvořit pouze jeden jedinečný sloupec klíče, použijte syntaxi, jak je uvedeno níže:

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

Pokud chceme v tabulce vytvořit více než jeden jedinečný sloupec klíče, použijte syntaxi, jak je uvedeno níže:

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

Pokud jsme nezadali název pro jedinečné omezení, MySQL vygeneruje název pro tento sloupec automaticky. Proto se při vytváření tabulky doporučuje použít název omezení.

Vysvětlení parametru

Následující tabulka podrobně vysvětluje parametry.

Název parametru Popisy
název_tabulky Je to název tabulky, kterou vytvoříme.
sloupec1, sloupec2 Jsou to názvy sloupců, které tabulka obsahuje.
omezení_název Je to název jedinečného klíče.
název_sloupce Jedná se o názvy sloupců, které budou jedinečným klíčem.

Příklad jedinečného klíče

Následující příklad vysvětluje, jak se v MySQL používá jedinečný klíč.

Tento příkaz vytvoří tabulku ' Student2 “ s UNIKÁTNÍM omezením:

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

Dále spusťte níže uvedené vkládací dotazy, abyste pochopili, jak 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ýstup

V níže uvedeném výstupu vidíme, že první INSERT dotaz provede správně, ale druhý příkaz selže a zobrazí chybu, která říká: Duplicitní záznam '1' pro klíč Stud_ID.

Jedinečný klíč MySQL

Pokud chcete definovat jedinečný klíč na více sloupců , použijte dotaz takto:

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

Ve výstupu můžeme vidět, že jedinečná hodnota klíče obsahuje dva sloupce, které jsou Číslo_role a E-mailem .

Jedinečný klíč MySQL

Chcete-li to ověřit, proveďte následující příkaz:

 mysql> SHOW INDEX FROM Student3; 

Zde vidíme, že jedinečné omezení bylo úspěšně přidáno do tabulky:

Jedinečný klíč MySQL

Jedinečný klíč DROP

Příkaz ALTER TABLE nám také umožňuje vypustit jedinečný klíč z tabulky. K odstranění jedinečného klíče se používá následující syntaxe:

 ALTER TABLE table_name DROP INDEX constraint_name; 

Ve výše uvedené syntaxi je název_tabulky je název tabulky, kterou chceme upravit, a omezení_název je název jedinečného klíče, který se chystáme odstranit.

Příklad

Toto prohlášení odstraní uc_rollno_email omezení z tabulky trvale.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

K tomu můžeme provést příkaz SHOW INDEX.

Jedinečný klíč pomocí příkazu ALTER TABLE

Tento příkaz nám umožňuje provést úpravu do existující tabulky. Někdy chceme přidat jedinečný klíč do sloupce existující tabulky; pak se tento příkaz použije k přidání jedinečného klíče pro tento sloupec.

Syntax

Následuje syntaxe příkazu ALTER TABLE pro přidání jedinečného klíče:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Příklad

Tento příkaz vytvoří tabulku ' Studenti3 ', které nemají žádný jedinečný klíčový sloupec v definici tabulky.

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

Po vytvoření tabulky, pokud chceme do této tabulky přidat jedinečný klíč, musíme provést příkaz ALTER TABLE, jak je uvedeno níže:

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

Můžeme vidět výstup, kde byly oba příkazy úspěšně provedeny.

Jedinečný klíč MySQL

Chcete-li to ověřit, proveďte následující příkaz:

 mysql> SHOW INDEX FROM Student3; 

Zde vidíme, že jedinečné omezení bylo úspěšně přidáno do tabulky:

Jedinečný klíč MySQL