Indeks kunci utama komposit mysql

Terkadang Anda mungkin perlu membuat kunci primer gabungan yang terdiri dari beberapa bidang, untuk tabel database. Berikut cara membuat kunci primer komposit di MySQL

 

Cara Membuat Kunci Utama Komposit di MySQL

Berikut langkah-langkah membuat composite primary key di MySQL. Anda dapat membuat kunci utama gabungan, baik selama pembuatan tabel menggunakan pernyataan CREATE TABLE, atau setelah membuat tabel menggunakan pernyataan ALTER TABLE. Kami akan melihat kedua contoh ini untuk membuat kunci primer komposit di MySQL

 

Contoh Kunci Utama Komposit MySQL

Berikut cara membuat kunci primer komposit di MySQL selama pembuatan tabel. Katakanlah Anda ingin membuat tabel pesanan (id_pesanan, id_produk, jumlah) dengan kunci utama komposit (id_pesanan, id_produk)

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 primer gabungan (order_id, product_id). Pada output di atas, Anda akan melihat PRI disebutkan di kolom Key untuk order_id, product_id menunjukkan bahwa keduanya adalah bagian dari primary key

Bonus Baca. Cara Memotong Tabel di MySQL

 

Tambahkan Kunci Utama Komposit di Tabel yang Ada

Berikut contoh cara menambahkan composite primary key pada tabel yang sudah 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 tabel new_orders tidak memiliki primary key. Inilah kueri SQL untuk menambahkan kunci primer komposit menggunakan ALTER TABLE

Bonus Baca. TAMPILAN DROP MySQL

 

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

Perlu diketahui, Anda tidak dapat membuat kunci primer komposit MySQL dengan penambahan otomatis

Bonus Baca. Cara Membuat Indeks di MySQL

 

Indeks Kunci Utama Komposit MySQL

Anda dapat membuat indeks untuk kunci utama gabungan yang menggunakan bidang yang sama yang ada di kunci utama gabungan Anda

Kunci komposit di MySQL adalah kombinasi dari dua atau lebih dari dua kolom dalam tabel yang memungkinkan kita untuk mengidentifikasi setiap baris tabel secara unik. Ini adalah jenis kunci kandidat yang dibentuk oleh lebih dari satu kolom. MySQL menjamin keunikan kolom hanya jika digabungkan. Jika diambil secara individual, keunikan itu tidak bisa dipertahankan

Kunci apa pun seperti kunci primer, kunci super, atau kunci kandidat dapat disebut kunci komposit ketika digabungkan dengan lebih dari satu atribut. Kunci komposit berguna saat tabel perlu mengidentifikasi setiap record dengan lebih dari satu atribut secara unik. Kolom yang digunakan dalam kunci komposit dapat memiliki tipe data yang berbeda. Dengan demikian, tidak diperlukan tipe data yang sama untuk kolom untuk membuat kunci komposit di MySQL

Kunci komposit dapat ditambahkan dengan dua cara

  1. Menggunakan Pernyataan CREATE
  2. Menggunakan Pernyataan ALTER

Mari kita lihat kedua cara tersebut secara rinci

Kunci Komposit Menggunakan Pernyataan CREATE

Di sini, kita akan memahami cara kerja kunci komposit di MySQL. Mari kita buat tabel "Produk" terlebih dahulu, menggunakan pernyataan berikut

Dalam pernyataan di atas, kami telah membuat primer komposit dengan nama kolom Name dan Manufacturer

Kami dapat memverifikasi hal yang sama menggunakan perintah seperti di bawah ini

Setelah eksekusi sukses, kita bisa melihat bahwa kolom Key memiliki dua PRI. Artinya kita telah berhasil menambahkan composite primary key pada kolom Name dan Manufacturer

Indeks kunci utama komposit mysql

Selanjutnya, kita perlu memasukkan nilai ke dalam tabel ini seperti yang diberikan di bawah ini

Selanjutnya, jalankan perintah di bawah ini untuk menampilkan data tabel

Ini akan memberikan output di bawah ini

Indeks kunci utama komposit mysql

Sekali lagi jalankan pernyataan insert di bawah ini untuk memahami kunci komposit dengan lebih jelas

Pada output di bawah ini, kita dapat melihat bahwa jika kita mencoba menambahkan kombinasi dari nama produk dan pabrikan yang sama, maka akan muncul kesalahan yang mengatakan bahwa. Entri duplikat untuk produk. utama

Jika kita mengeksekusi pernyataan penyisipan kedua, itu akan berhasil ditambahkan ke dalam tabel. Itu karena kita bisa memasukkan sabun dalam jumlah berapa pun di kolom produk, tetapi kolom pabrikan harus berbeda

Indeks kunci utama komposit mysql

Oleh karena itu, kita dapat mengatakan bahwa kunci komposit selalu memaksakan keunikan kolom tabel tersebut, yang memiliki dua kunci

Kunci Komposit Menggunakan Pernyataan ALTER TABLE

Pernyataan ALTER selalu digunakan untuk melakukan modifikasi pada tabel yang sudah ada. Terkadang diperlukan untuk menambahkan kunci komposit untuk mengidentifikasi secara unik setiap catatan tabel dengan lebih dari satu atribut. Dalam hal ini, kami menggunakan pernyataan ALTER TABLE

Mari kita buat tabel "Siswa" menggunakan pernyataan di bawah ini

Sekarang, jalankan pernyataan ALTER TABLE untuk menambahkan kunci primer komposit sebagai berikut

Kami dapat memverifikasi kunci primer komposit yang ditambahkan ke tabel atau tidak menggunakan perintah berikut

Pada output, kita dapat melihat bahwa kolom key memiliki PRI, yang berarti kita telah berhasil menambahkan composite primary key ke kolom stud_id dan subject.

Apa indeks kunci primer komposit di MySQL?

Composite key di MySQL adalah kombinasi dua atau lebih dari dua kolom dalam sebuah tabel yang memungkinkan kita mengidentifikasi setiap baris tabel secara unik. It is a type of candidate key which is formed by more than one column. MySQL guaranteed the uniqueness of the column only when they are combined.

Apakah kunci utama komposit diindeks?

Kunci utama yang memiliki lebih dari satu kolom selalu diindeks secara otomatis sebagai indeks komposit dengan kolomnya sesuai urutan kemunculannya dalam definisi tabel, bukan urutannya .

Apa perbedaan antara kunci primer komposit dan indeks di MySQL?

Kunci utama digunakan untuk mengidentifikasi catatan secara unik dan dibuat menggunakan kata kunci PRIMARY KEY. Indeks dapat mencakup beberapa kolom data, seperti indeks seperti INDEX (kolomA, kolomB), yang merupakan indeks bersama. composite primary key mengacu pada tabel kunci utama Anda yang berisi lebih dari satu bidang . .

Bisakah kunci utama menjadi komposit di MySQL?

Kunci Utama Komposit dibuat dengan menggabungkan dua kolom atau lebih dalam tabel yang dapat digunakan untuk mengidentifikasi secara unik setiap baris dalam tabel saat kolom digabungkan , tetapi itu tidak .