Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете композитен първичен ключ в MySQL

Понякога може да се наложи да създадете съставен първичен ключ, състоящ се от множество полета, за таблици на база данни. Ето как да създадете съставен първичен ключ в MySQL.

Как да създадете композитен първичен ключ в MySQL

Ето стъпките за създаване на съставен първичен ключ в MySQL. Можете да създадете съставен първичен ключ или по време на създаване на таблица, използвайки оператор CREATE TABLE, или след създаване на таблици с помощта на оператор ALTER TABLE. Ще разгледаме и двата примера, за да създадем съставен първичен ключ в MySQL.

Примери за композитен първичен ключ на MySQL

Ето как да създадете съставен първичен ключ в MySQL по време на създаване на таблица. Да приемем, че искате да създадете поръчки(order_id, product_id, amount) таблица със съставен първичен ключ (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    |       |
+------------+---------+------+-----+---------+-------+

В горната заявка създадохме съставен първичен ключ (order_id, product_id). В горния изход ще видите PRI, споменат в колоната Ключ за order_id, product_id което показва, че и двете са части от първичния ключ.

Бонус за четене:Как да съкратите таблицата в MySQL

Добавяне на съставен първичен ключ в съществуваща таблица

Ето пример за това как да добавите съставен първичен ключ в съществуваща таблица. Да приемем, че имате следната таблица

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    |       |
+------------+---------+------+-----+---------+-------+

Както можете да видите нови_поръчки таблицата няма първичен ключ. Ето SQL заявката за добавяне на съставен първичен ключ с помощта на ALTER TABLE.

Бонус четене: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    |       |
+------------+---------+------+-----+---------+-------+

Моля, имайте предвид, че не можете да създадете композитен първичен ключ на MySQL с автоматично увеличение.

Бонус четене:Как да създадете индекс в MySQL

Сложен първичен ключов индекс на MySQL

Можете да създадете индекс за съставен първичен ключ, който използва същите полета, присъстващи във вашия съставен първичен ключ.

mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);

Надяваме се, че сега можете да създадете съставен първичен ключ в MySQL.

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Хибернация 5 :- org.hibernate.MappingException:Неизвестен обект

  2. MySQL създава синтаксис на съхранена процедура с разделител

  3. Връщане на резултат по подразбиране за IN стойност независимо

  4. Как да увелича MySQL връзките(max_connections)?

  5. Как да форматирате числата като валута в MySQL