Dalam database relasional, ada istilah primary key dan foreign key. Tujuan utama dari kedua istilah tersebut adalah identifikasi setiap tabel dan kejelasan hubungan antara 2 tabel atau lebih. Kunci utama adalah satu atau beberapa kolom dalam tabel yang mengidentifikasi setiap kolom dan baris dalam tabel. Sedangkan Foreign Key adalah satu atau beberapa kolom pada tabel yang merupakan primary key pada tabel satu tetapi diletakkan pada tabel yang mana tabel tersebut berhubungan dengan tabel itu sendiri. Show Pada gambar di atas, nim on table mhs adalah primary key. Sedangkan primary key pada tabel matkul adalah id_matkul. Kemudian id_matkul dilampirkan pada tabel mhs yang kita sebut sebagai foreign key Saya biasanya merujuk ke tabel yang berisi kunci asing sebagai tabel anak karena tabel tersebut terkait dengan tabel lain. Sedangkan tabel terkait saya sebut sebagai tabel induk. Pada contoh tabel di atas, mhs adalah tabel anak sedangkan matkul adalah tabel induk Tabel hal Meja Matkul Saya langsung praktek di mysql. Ini kodenya
Lihatlah baris kode pada tabel mhs,
Itulah cara mendefinisikan kunci asing di mysql. Id_matkul didefinisikan sebagai kunci asing yang mengacu pada tabel matkul di kolom id_matkul Yang ingin saya fokuskan pada artikel ini adalah apa yang terjadi jika data matkul misalnya data dengan id_matkul='IF123' dihapus?
Maka pasti ada kesalahan
Ini berarti tidak mungkin menghapus atau memperbarui kolom di tabel induk karena direferensikan di tabel mhs Di MYSQL, kita harus menambahkan perintah ON DELETE [opsi] dan ON UPDATE [opsi] ke tabel yang mereferensikan kunci asing. Opsi pada perintah dijelaskan di bawah ini 1. RESTRICT, Jika tabel anak berisi nilai di kolom terkait yang nilainya sama dengan kolom terkait di tabel induk, baris di tabel induk tidak dapat dihapus, dan nilai di kolom terkait tidak dapat diperbarui. Ini adalah opsi default jika klausa ON DELETE atau ON UPDATE tidak ditentukan 2. CASCADE, Baris-baris pada tabel anak yang berisi nilai-nilai yang juga terdapat pada kolom terkait pada tabel induk dihapus ketika baris terkait dihapus dari tabel induk. Baris di tabel anak yang berisi nilai yang juga ditemukan di kolom terkait dari tabel induk diperbarui saat nilai terkait diperbarui di tabel induk 3. SET NULL, Nilai di kolom terkait dari tabel anak disetel ke NULL saat baris dengan data terkait di tabel induk dihapus dari tabel induk atau saat data terkait di tabel induk diperbarui. Untuk menggunakan opsi ini, semua kolom terkait di tabel anak harus mengizinkan nilai NULL 4. TIDAK ADA TINDAKAN Tidak ada tindakan yang diambil di tabel anak saat baris dihapus dari tabel induk atau nilai di kolom terkait di tabel induk diperbarui 5. SET DEFAULT Nilai dalam kolom terkait dari tabel anak disetel ke nilai defaultnya ketika baris dihapus dari tabel induk atau kolom terkait dari tabel induk diperbarui. Saat kita mendefinisikan kunci asing dengan Coba sekarang ubah struktur tabel dari mhs dengan mengubah referensi kunci asing dengan opsi ON DELETE dan ON UPDATE CASCADE Karena kita menggunakan OPSI CASCADE pada ON DELETE dan ON UPDATE, ketika kita menghapus salah satu kolom pada tabel induk, tabel anak juga akan dihapus. Terlihat bahwa data siswa bernama Adiputra Artupida dihapus karena Adiputra Artupida mengambil matkul dengan id 'IF123' dimana id tersebut dihapus dari tabel matkul Selebihnya silahkan perbaiki diri. Saran jika kita ingin menyelesaikan foreign key biasakan menggunakan perintah ON UPDATE dan ON DELETE dengan OPTIONS disesuaikan dengan kebutuhan Langkah-langkah untuk membuat kunci asing?Cara Membuat Foreign Key di PHPMyAdmin . Pertama, Anda harus membuka tabel yang ingin Anda tambahkan kunci asing dan membuka tab 'Struktur'. Anda akan melihat sub menu 'Relation View' Pilih kolom yang menampung kunci asing dan tabel yang akan Anda rujuk dengan kunci asing Bisakah 2 kunci utama dalam 1 tabel?Kondisi dari Kunci Utama
. Jumlah maksimum primary key adalah 16 kolom dengan panjang kunci 900 byte. hanya bisa memiliki satu kunci primer. Jumlah maksimal kunci primer yaitu 16 kolom dengan panjang kunci 900 byte.
Apa itu kunci utama di MySQL?Fungsi Kunci Utama di MySQL
. Hal ini penting dilakukan karena dapat menghubungkan suatu tabel dengan tabel lain yang berhubungan dengan primary key sebagai penghubung. Kunci utama memungkinkan kamu untuk mengidentifikasi setiap baris di tabel. Hal ini penting dilakukan karena dapat menautkan tabel ke tabel lain yang berkaitan dengan kunci utama sebagai tautannya.
Kapan Anda bisa menggunakan kunci asing?Secara umum, foreign key biasanya digunakan sebagai penanda hubungan antar tabel. Tabel pertama memiliki peran utama sehingga disebut primary key di dalamnya, dan tabel kedua adalah foreign key yang biasa disebut sebagai kunci asing. |