Nogle gange skal du muligvis oprette en sammensat primærnøgle bestående af flere felter til databasetabeller. Sådan opretter du sammensat primær nøgle i MySQL.
Sådan opretter du sammensat primær nøgle i MySQL
Her er trinene til at oprette sammensat primær nøgle i MySQL. Du kan oprette sammensat primær nøgle, enten under oprettelse af tabel ved hjælp af CREATE TABLE-sætning eller efter oprettelse af tabeller ved hjælp af ALTER TABLE-sætning. Vi vil se på begge disse eksempler for at skabe sammensat primær nøgle i MySQL.
MySQL Composite Primary Key Eksempler
Sådan opretter du sammensat primær nøgle i MySQL under oprettelse af tabel. Lad os sige, at du vil oprette ordrer (ordre_id, product_id, amount) tabel med sammensat primær nøgle (ordre_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 | | +------------+---------+------+-----+---------+-------+
I ovenstående forespørgsel har vi oprettet sammensat primær nøgle (order_id, product_id). I ovenstående output vil du se PRI nævnt i nøglekolonnen for order_id, product_id angiver, at de begge er dele af den primære nøgle.
Bonus Læs:Sådan afkortes tabel i MySQL
Tilføj sammensat primær nøgle i eksisterende tabel
Her er et eksempel på, hvordan man tilføjer sammensat primær nøgle i eksisterende tabel. Lad os sige, at du har følgende 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 | | +------------+---------+------+-----+---------+-------+
Som du kan se nye_ordrer tabel har ikke en primær nøgle. Her er SQL-forespørgslen for at tilføje sammensat primær nøgle ved hjælp af ALTER TABLE.
Bonus Læs: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 | | +------------+---------+------+-----+---------+-------+
Bemærk venligst, at du ikke kan oprette MySQL sammensat primær nøgle med automatisk stigning.
Bonus Læs:Sådan opretter du indeks i MySQL
MySQL Composite Primary Key Index
Du kan oprette et indeks for sammensat primær nøgle, der bruger de samme felter, der findes i din sammensatte primærnøgle.
mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);
Forhåbentlig kan du nu oprette sammensat primær nøgle i MySQL.
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!