sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit složený primární klíč v MySQL

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!

  1. Předávání seznamu<> do SQL uložené procedury

  2. T-SQL úterý #65:Naučte něco nového

  3. Mohu požádat Postgresql, aby ignoroval chyby v transakci

  4. Prozkoumání Java Unit Testing pomocí JUnit Test Framework