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: