Někdy může být potřeba vytvořit složený primární klíč skládající se z více polí pro databázové tabulky. Zde je návod, jak vytvořit složený primární klíč v MySQL.
Jak vytvořit složený primární klíč v MySQL
Zde jsou kroky k vytvoření složeného primárního klíče v MySQL. Složený primární klíč můžete vytvořit buď během vytváření tabulky pomocí příkazu CREATE TABLE, nebo po vytvoření tabulek pomocí příkazu ALTER TABLE. Podíváme se na oba tyto příklady, abychom vytvořili složený primární klíč v MySQL.
Příklady složeného primárního klíče MySQL
Zde je návod, jak vytvořit složený primární klíč v MySQL během vytváření tabulky. Řekněme, že chcete vytvořit objednávky(order_id, product_id, množství) tabulka se složeným primárním klíčem (order_id, product_id).
mysql> CREATE TABLE orders_list ( order_id INT, product_id INT, amount INT, PRIMARY KEY (order_id, product_id) ) ; mysql> describe orders_list; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | order_id | int(11) | NO | PRI | 0 | | | product_id | int(11) | NO | PRI | 0 | | | amount | int(11) | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Ve výše uvedeném dotazu jsme vytvořili složený primární klíč (order_id, product_id). Ve výše uvedeném výstupu uvidíte PRI uvedenou ve sloupci Klíč pro order_id, product_id což znamená, že jsou obě součástí primárního klíče.
Bonusové čtení:Jak zkrátit tabulku v MySQL
Přidat složený primární klíč do existující tabulky
Zde je příklad, jak přidat složený primární klíč do existující tabulky. Řekněme, že máte následující tabulku
mysql> CREATE TABLE new_orders ( order_id INT, product_id INT, amount INT ) ; mysql> describe new_orders; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | | NULL | | | product_id | int(11) | YES | | NULL | | | amount | int(11) | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Jak můžete vidět new_orders tabulka nemá primární klíč. Zde je dotaz SQL pro přidání složeného primárního klíče pomocí ALTER TABLE.
Bonusové čtení:MySQL DROP VIEW
mysql> alter table new_orders ADD PRIMARY KEY (order_id, product_id); mysql> describe new_orders; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | order_id | int(11) | NO | PRI | 0 | | | product_id | int(11) | NO | PRI | 0 | | | amount | int(11) | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Upozorňujeme, že složený primární klíč MySQL nelze vytvořit s automatickým přírůstkem.
Bonusové čtení:Jak vytvořit index v MySQL
Index složeného primárního klíče MySQL
Můžete vytvořit index pro složený primární klíč, který používá stejná pole jako ve vašem složeném primárním klíči.
mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);
Doufejme, že nyní můžete vytvořit složený primární klíč v MySQL.
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!