Понякога може да се наложи да създадете съставен първичен ключ, състоящ се от множество полета, за таблици на база данни. Ето как да създадете съставен първичен ключ в 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!