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