Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć złożony klucz podstawowy w MySQL

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ś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przewodnik po projektowaniu bazy danych dla systemu zarządzania pracownikami w MySQL

  2. MySQL:Klonowanie bazy danych MySQL na tej samej instancji MySql

  3. Równoważenie obciążenia z uwzględnieniem bazy danych:jak przeprowadzić migrację z HAProxy do ProxySQL

  4. Podział na partycje tabeli zawierającej miliard wierszy danych piłkarskich przy użyciu kontekstu danych

  5. Jak rzutować znak na liczbę całkowitą podczas odpytywania w django ORM?