Někdy může být nutné, aby byl sloupec v MySQL jedinečný. Můžete to udělat přidáním omezení sloupců UNIQUE v MySQL. Existuje několik způsobů, jak přidat jedinečné omezení – pomocí příkazů CREATE TABLE nebo ALTER TABLE. Zde je návod, jak přidat jedinečné omezení v MySQL.
MySQL přidat jedinečné omezení
Zde je návod, jak přidat jedinečné omezení v MySQL. Jedinečné omezení můžete přidat při vytváření tabulky nebo po vytvoření tabulky. Podíváme se na oba tyto přístupy.
MySQL přidá při vytváření tabulky jedinečné omezení
Zde je příkaz SQL pro vytvoření UNIKÁTNÍHO omezení při vytváření tabulky
CREATE TABLE table_name( ..., column_name data_type UNIQUE, ... )
Ve výše uvedeném dotazu musíte zadat klíčové slovo UNIQUE pro definici sloupce, který má být jedinečný.
Zde je příklad vytvoření jedinečného omezení. V následujícím příkladu jsme přidali omezení UNIQUE pro order_id sloupec
mysql> create table recent_orders ( order_id int UNIQUE, amount int ); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+
Nyní, když se pokusíte vložit duplicitní hodnoty pro order_id zobrazí se chyba.
mysql> insert into recent_orders(order_id, amount) values(1, 100),(1,250); ERROR 1062 (23000): Duplicate entry '1' for key 'order_id' mysql> insert into recent_orders(order_id, amount) values(1, 100),(2,250); mysql> select * from recent_orders; +----------+--------+ | order_id | amount | +----------+--------+ | 1 | 100 | | 2 | 250 | +----------+--------+
Bonusové čtení:Sloupec přejmenování MySQL
MySQL přidá do existujícího sloupce jedinečné omezení
Zde je příkaz SQL pro vytvoření UNIQUE omezení pro existující sloupec pomocí příkazu ALTER TABLE.
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );
Ve výše uvedeném dotazu SQL musíte zadat název_omezení pro omezení UNIQUE za PŘIDAT OMEZENÍ a uveďte sloupce, které chcete být jedinečné, v ( )
Zde je příklad přidání jedinečného omezení do existujícího sloupce
mysql> alter table recent_orders add constraint unique_amount UNIQUE (amount); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | UNI | NULL | | +----------+---------+------+-----+---------+-------+
Ve výše uvedeném dotazu jsme přidali jedinečné omezení do sloupce částky.
Bonusové čtení:Jak duplikovat tabulku v MySQL
MySQL Přidat jedinečné omezení více sloupců
Zde je příkaz SQL pro vytvoření UNIKÁTNÍHO omezení pro více sloupců.
mysql> create table old_orders ( order_id int, amount int, CONSTRAINT u_orders UNIQUE (order_id,amount) ); mysql> describe old_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | MUL | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+ mysql> insert into old_orders(order_id, amount) values(1, 100),(1,100); ERROR 1062 (23000): Duplicate entry '1-100' for key 'u_orders'
Bonusové čtení:Uložená procedura MySQL s parametry
Můžete také přidat UNIQUE CONSTRAINT do více sloupců pomocí příkazu ALTER TABLE.
alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!