Terkadang Anda mungkin perlu membuat kunci primer komposit yang terdiri dari beberapa bidang, untuk tabel database. Berikut cara membuat kunci primer komposit di MySQL.
Cara Membuat Kunci Primer Komposit di MySQL
Berikut adalah langkah-langkah untuk membuat kunci primer komposit di MySQL. Anda dapat membuat kunci utama komposit, baik selama pembuatan tabel menggunakan pernyataan CREATE TABLE, atau setelah membuat tabel menggunakan pernyataan ALTER TABLE. Kita akan melihat kedua contoh ini untuk membuat kunci primer komposit di MySQL.
Contoh Kunci Utama Gabungan MySQL
Berikut cara membuat kunci primer komposit di MySQL selama pembuatan tabel. Katakanlah Anda ingin membuat pesanan(id_pesanan, id_produk, jumlah) tabel dengan kunci utama gabungan (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 | | +------------+---------+------+-----+---------+-------+
Dalam kueri di atas, kami telah membuat kunci utama komposit (order_id, product_id). Pada output di atas, Anda akan melihat PRI disebutkan di kolom Kunci untuk order_id, product_id menunjukkan bahwa keduanya adalah bagian dari kunci utama.
Bonus Baca :Cara Memotong Tabel di MySQL
Tambahkan Kunci Utama Komposit pada Tabel yang Ada
Berikut adalah contoh cara menambahkan kunci primer komposit di tabel yang ada. Katakanlah Anda memiliki tabel berikut
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 | | +------------+---------+------+-----+---------+-------+
Seperti yang Anda lihat new_orders tabel tidak memiliki kunci utama. Berikut kueri SQL untuk menambahkan kunci utama komposit menggunakan ALTER TABLE.
Bonus Baca :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 | | +------------+---------+------+-----+---------+-------+
Harap dicatat, Anda tidak dapat membuat kunci utama komposit MySQL dengan kenaikan otomatis.
Bonus Baca :Cara Membuat Index di MySQL
Indeks Kunci Utama Gabungan MySQL
Anda dapat membuat indeks untuk kunci utama komposit yang menggunakan bidang yang sama yang ada di kunci utama komposit Anda.
mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);
Mudah-mudahan, sekarang Anda dapat membuat kunci primer komposit di MySQL.
Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!