Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Membuat Kunci Utama Komposit di MySQL

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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan SQL mengabaikan parameter where

  2. Bagaimana Fungsi LCASE() Bekerja di MySQL

  3. Bagaimana mengelola pengguna dan otentikasi di MySQL

  4. Memilih semua kolom yang dimulai dengan XXX menggunakan karakter pengganti?

  5. MySQL Query - Catatan antara Hari Ini dan 30 Hari Terakhir