Czasami może być konieczne utworzenie złożonego klucza podstawowego składającego się z wielu pól dla tabel bazy danych. Oto jak utworzyć złożony klucz podstawowy w MySQL.
Jak utworzyć złożony klucz podstawowy w MySQL
Oto kroki, aby utworzyć złożony klucz podstawowy w MySQL. Złożony klucz podstawowy można utworzyć podczas tworzenia tabeli za pomocą instrukcji CREATE TABLE lub po utworzeniu tabel za pomocą instrukcji ALTER TABLE. Przyjrzymy się obu tym przykładom, aby utworzyć złożony klucz podstawowy w MySQL.
Przykłady klucza podstawowego złożonego MySQL
Oto jak utworzyć złożony klucz podstawowy w MySQL podczas tworzenia tabeli. Załóżmy, że chcesz utworzyć zamówienia(identyfikator_zamówienia, identyfikator_produktu, kwota) tabela ze złożonym kluczem podstawowym (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 | | +------------+---------+------+-----+---------+-------+
W powyższym zapytaniu utworzyliśmy złożony klucz podstawowy (order_id, product_id). W powyższym wyniku zobaczysz PRI wymienione w kolumnie Klucz dla identyfikator_zamówienia, identyfikator_produktu wskazując, że obie są częściami klucza podstawowego.
Przeczytaj bonus:Jak przyciąć tabelę w MySQL
Dodaj złożony klucz podstawowy w istniejącej tabeli
Oto przykład, jak dodać złożony klucz podstawowy w istniejącej tabeli. Załóżmy, że masz poniższą tabelę
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 widać nowe_zamówienia tabela nie ma klucza podstawowego. Oto zapytanie SQL, aby dodać złożony klucz podstawowy za pomocą ALTER TABLE.
Przeczytaj bonus: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 | | +------------+---------+------+-----+---------+-------+
Pamiętaj, że nie możesz utworzyć złożonego klucza podstawowego MySQL z automatyczną inkrementacją.
Przeczytaj bonus:Jak utworzyć indeks w MySQL
Indeks klucza podstawowego złożonego MySQL
Możesz utworzyć indeks dla złożonego klucza podstawowego, który używa tych samych pól, które znajdują się w Twoim złożonym kluczu podstawowym.
mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);
Mamy nadzieję, że teraz możesz utworzyć złożony klucz podstawowy w MySQL.
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!