Cara menggunakan delete foreign key mysql

Pada tutorial kali ini, kita akan menampilkan data dari database kedalam combobox. Buat sebuah database…

  • Mengisi Relasi Antar Table (Foreign Key) dengan Nilai NULL

    Sebagai contoh kita memiliki table database CREATE TABLE `user` ( `user_id` int(11) NOT NULL AUTO_INCREMENT,…

    Kita bisa mengeceknya dengan cara klik database yang diinginkan. Lalu pada daftar tabel yang muncul cermati bagian Type. Contohnya adalah sebagai berikut.

    Cara menggunakan delete foreign key mysql



    Pastikan Field yang Terlibat Dijadikan Index atau Primary Key

    Selain ketentuan di atas, kita juga harus memastikan bahwa field yang dibuat menjadi foreign key (pada child table) ataupun field yang akan dijadikan referensi (pada parent table) harus dijadikan sebagai index atau primary key.

    Untuk memeriksa apakah field sudah ditambahkan sebagai index, ada dua cara tergantung versi phpMyAdmin yang digunakan. Untuk phpMyAdmin versi 4.4 ke atas terdapat ikon kunci berwarna abu-abu di sebelah kanan nama field. Sedangkan untuk versi 4.0 ke bawah, kta perlu menekan link Indexes yang terdapat di bagian bawah daftar tabel.

    Nilai pada Field yang Akan Dijadikan Foreign Key Harus Ada pada Field Referensi

    Selain itu syarat lain untuk membuat foreign key adalah memastikan bahwa seluruh nilai pada field yang akan dijadikan foreign key (child table) harus ada pada field referensi pada parent table. Misalnya kita membuat foreign key pada field id_produk yang terdapat pada tabel sales, dengan referensi field id_produk yang ada pada tabel produk.

    Contohnya row pertama field id_produk pada tabel sales berisi nilai 1, row kedua 2 dan row ketiga 3. Maka field id_produk pada tabel produk juga harus memuat tiga nilai tersebut.

    Baca juga: Normalisasi Database

    Membuat dan Mengubah Storage Engine Menjadi InnoDB

    Apabila engine table pada database Anda belum InnoDB, Anda bisa mengubahnya dengan beberapa tahap. Berikut adalah tahap mengubah atau membuat storage engine menjadi InnoDB:

    • Jika tabel sudah terbentuk, klik tabel yang diinginkan dan pilih tab Operations.
    • Di bagian Table Options Anda bisa melihat pilihan Storage Engine. Silakan pilih InnoDB.
    • Saat membuat tabel baru, pilih InnoDB pada pilihan Storage Engine yang ada di sisi bawah.

    Cara Membuat Foreign Key

    Dalam membuat foreign key, ada beberapa langkah yang perlu kita lakukan. Lebih lengkapnya berikut akan dijelaskan satu per satu.

    Skema dan Hubungan Antar Variabel

    Misalnya kita sudah memiliki database online_shop, kemudian di dalam database tersebut memuat tabel sales dengan field id_produk dan id_pelanggan. Lebih detailnya field id_produk adalah referensi dari field id_produk yang ada di tabel produk.

    Sedangkan id_pelanggan adalah referensi dari field id_pelanggan pada tabel pelanggan. Struktur tabel dan hubungan antar tabel bisa dilihat pada gambar di bawah ini:

    Hai.. bagaimana khabar sobat semuanya, semoga senantiasa dalam kebaikan dan tetap semangat belajar pemrograman web.

    Pada kesempatan kali ini kita akan membahas bagaimana cara membuat, mengedit dan menghapus foreign key (FK) dengan bantuan phpMyAdmin. Tutorial yang akan sobat ikuti ini dilengkapi dengan berbagai ilustrasi gambar, dengan harapan pembahasan akan lebih detail sehingga mudah untuk diikuti dan difahami.

    Artikel ini terdiri dari beberapa pembahasan, jika ingin langsung ke pembahasan yang diinginkan, silakan klik link berikut:

    I. Syarat Membuat Foreign Key

    Sebelum membuat foreign key pada MySQL, terlebih dahulu perlu dipastikan bahwa syarat-syarat yang di butuhkan untuk membuat foreign key telah terpenuhi. Adapun syaratnya adalah sebagai berikut:

    a Pastikan engine penyimpanan yang digunakan adalah InnoDB

    Yang pertama kali harus dilakukan pada pembuatan foreign key (FK) adalah memastikan engine penyimpanan yang digunakan pada tabel adalah InnoDB, karena hanya engine ini yang mendukung fitur foreign key.

    Untuk memastikan engine yang digunakan, dapat dilakukan dengan cara mengklik database yang diinginkan, pada daftar tabel yang muncul, lihat bagian type. Contoh pada gambar berikut ini:

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 1. Cek Storage Engine Tabel

    b Pastikan field yang terlibat dijadikan sebagai index atau primary key

    Untuk dapat membuat foreign key, syarat kedua yang harus dipenuhi adalah: baik field yang akan digunakan sebagai foreign key (pada child table) maupun field yang akan dijadikan referensi (pada parent table) harus dijadikan sebagai index atau primary key.

    Cara mengecek apakah field telah ditambahakan sebagai index adalah: Jika menggunakan phpMyAdmin versi 4.4 keatas, akan muncul icon kunci warna abu abu di sebelah kanan nama field, sedangkan untuk versi 4.0 kebawah, kita harus klik link Index yang ada di bagian bawah dari daftar tabel, contoh seperti gambar berikut:

    Melihat Index pada phpMyAdmin >= 4.4

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 2. Icon Index Pada Field

    Melihat index pada phpMyAdmin <= 4.0

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 3. Index Tabel Pada phpMyAdmin

    c Semua nilai pada field yang akan dijadikan FK (child tabel), harus ada pada field referensi pada parent tabel

    Syarat ketiga ini dapat dimisalkan kita akan membuat FK pada field id_produk yang ada pada tabel sales dengan referensi field id_produk yang ada pada tabel produk. Misal row pertama field id_produk pada tabel sales berisi nilai 1, row kedua 2 dan row ketiga 3, maka fileld id_produk pada tabel produk harus memuat ketiga nilai tersebut.

    Merubah atau Membuat Storage Engine Menjadi InnoDB

    Jika engine tabel belum innoDB, maka kita ubah terlebih dahulu menjadi InnoDB, caranya adalah:

    • Jika tabel sudah terbentuk, klik tabel yang diinginkan, kemudian pilih tab Operations. Pada bagian Table Options terdapat pilihan Storage Engine, pilih InnoDB. Contoh seperti tampak pada gambar berikut:

      Cara menggunakan delete foreign key mysql
      Cara menggunakan delete foreign key mysql

      Gambar 4. Cara Mengubah Storage Engine Pada phpMyAdmin

    • Ketika membuat tabel baru, pilih InnoDB pada pilihan Storage Engine yang ada di sebelah bawah. Contoh seperti pada gambar berikut:

      Cara menggunakan delete foreign key mysql
      Cara menggunakan delete foreign key mysql

      Gambar 5. Buat Tabel InnoDB Pada phpMyAdmin

    II. Membuat Foreign Key Dengan phpMyAdmin

    a Skema dan hubungan antar tabel

    Setelah membahas syarat-syarat membuat foreign key, sampilah kita pada bagian inti dari artikel ini yaitu membuat foreign key. Untuk lebih memudahkan pemahaman, kita misalkan kita memiliki database online_shop, didalamnya terdapat tabel sales dengan field id_produk dan id_produk2, dimana:

    • field id_produk merupakan referensi dari field id_produk yang ada di tabel id_produk5
    • field id_produk2 merupakan referensi dari field id_produk2 pada tabel id_produk8 Struktur tabel dan hubungan antar tabel akan tampak seperti gambar berikut:

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 6. Foreign Key Antar Tabel

    b Masuk ke halaman relation view pada phpMyAdmin

    Langkah selanjutnya adalah masuk ke halaman Relation View pada tabel sales, caranya: Pilih tabel (klik tabel sales) -> pilih tab Structure -> klik link Relation View, letak link Relation View berbeda beda tergantung versi phpMyAdmin nya. Contoh seperti pada gambar berikut ini:

    Letak Link Relation View Pada phpMyAdmin <= 4.0

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 6. Link Relation View Pada phpMyAdmin 4.0

    Letak Link Relation View Pada phpMyAdmin >= 4.4

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 7. Link Relation View Pada phpMyAdmin 4.5

    Link Relation View Tidak Muncul

    Untuk phpMyAdmin 4.4 keatas, jika tabel masih menggunakan engine MyISAM, maka link Relation View tidak akan muncul, sedangkan untuk phpMyAdmin versi 4.0 dan sebelumnya, link tersebut tetap ada, namun ketika di klik, kolom Foreign key constraint (INNODB) tidak muncul, seperti tampak pada gambar berikut (tabel ekspedisi):

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 8. Halaman Relation View

    c Pengisian parameter pada halaman relation view

    Setelah masuk ke halaman relation view, langkah selanjutnya adalah pengisian parameter. Pengisian parameter untuk pembuatan foreign key pada field id_produk dan id_produk2 tampak seperti gambar berikut:

    Foreign Key Constraint Pada phpMyAdmin >= 4.4

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 9. Foreign Key Constraint Pada phpMyAdmin 4.5

    Foreign Key Constraint Pada phpMyAdmin <= 4.0

    Cara menggunakan delete foreign key mysql
    Cara menggunakan delete foreign key mysql

    Gambar 10. Foreign Key Constraint Pada phpMyAdmin 4.0

    Keterangan nomor:

    1. Isikan nama constraint, pilih nama yang mencerminkan relasinya, pada contoh kali ini kita beri nama sales2, yang artinya foreign key field pada tabel sales ke field tabel produk.
    2. Pilih field yang ingin dijadikan foreign key (phpMyAdmin >= 4.4).
    3. Pilih database dimana tabel yang mengandung field referensi berada.
    4. Pilih tabel dimana field referensi berada.
    5. Pilih field referensi yang akan kita tuju.
    6. Pada klausul ON DELETE, pilih CASCADE, yang berarti jika kita hapus salah satu row pada parent tabel (produk), maka row pada child tabel (sales) dengan id_produk yang sama akan ikut terhapus.
    7. Pada klausul ON UPDATE, pilih CASCADE, yang berarti jika kita update nilai field id_pelanggan pada tabel pelanggan, maka id_pelanggan yang sama pada tabel sales akan ikut terupdate.

    selanjutnya klik save, jika berhasil maka muncul pesan bahwa query berhasil dieksekusi.

    II. Mengedit Foreign Key dengan phpMyAdmin

    Untuk mengedit foreign key yang telah kita buat, terlebih dahulu kita masuk ke halaman Relation View, dengan cara yang sama ketika ingin menambah foreign key (), selanjutnya ubah parameter yang ada (contoh pada gambar 9), sesuai dengan yang kita inginkan, kemudian klik save/simpan.

    III. Menghapus Foreign Key dengan phpMyAdmin

    Terkadang kita ingin menghapus foreign key (FK) yang telah kita buat, baik karena sudah tidak digunakan lagi atau karena struktur field nya berubah. Untuk menghapus FK, terlebih dahulu masuk ke halaman Relation View (), selanjutnya:

    • Untuk phpMyAdmin versi <= 4.0 kosongkan pilihan pada Foreign key constraint (INNODB) kemudian klik save/simpan.
    • Untuk phpMyAdmin versi >= 4.4 tinggal klik icon Drop yang berada pada sebelah kiri nama constraint.

    IV. Error Pada Saat Membuat Foreign Key

    Pada saat membuat foreign key terkadang muncul pesan error seperti ini:

    ALTER TABLE `sales` ADD CONSTRAINT `fk_sales_pelanggan` FOREIGN KEY (`id_pelanggan`) REFERENCES `online_shop`.`pelanggan`(`id_pelanggan`) ON DELETE CASCADE ON UPDATE CASCADE;#1452 - Cannot add or update a child row: a foreign key constraint fails (`online_shop`.`#sql-ccc_e7`, CONSTRAINT `fk_sales_pelanggan` FOREIGN KEY (`id_pelanggan`) REFERENCES `pelanggan` (`id_pelanggan`) ON DELETE CASCADE ON UPDATE CASCADE)
    

    error tersebut disebabkan karena nilai pada field yang digunakan sebagai foreign key pada child table tidak ada pada field yang digunakan sebagai referensi pada parent table.

    Lebih spesifik, error tersebut terjadi karena terdapat nilai pada field id_produk2 (tabel sales) yang tidak ada pada tabel sales5, dimana field id_produk2 (tabel sales) merupakan referensi dari field id_produk2  (tabel sales5) .

    Untuk mengatasi error tersebut, tambahkan nilai id_produk2 yang ada di tabel sales namun belum ada di tabel sales5.

    Penutup

    Pembuatan foreign key menjadi lebih mudah dengan bantuan phpMyAdmin karena terdapat Graphical User Interface (GUI) yang mudah di gunakan, namun seiring berkembangnya aplikasi, kemungkinan akan terjadi perubahan GUI pada versi-versi berikutnya, sehingga kemungkinan perlu penyesuaian lagi.

    Demikian tutorial mengenai membuat, mengedit, dan menghapus foreign key dengan phpMyAdmin. Semoga bermanfaat.

    Subscibe Now

    Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

    Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

    Bagaimana penggunaan foreign key?

    Foreign Key digunakan untuk menandai suatu tabel terhubung dengan tabel lain dalam konteks tabel parent dan child. Sebuah tabel dikatakan child bila memiliki suatu field yang merupakan reference terhadap key di tabel parent. Hal ini digunakan untuk menjaga konsistensi dan keterkaitan antar tabel.

    Apa itu foreign key di MySQL?

    Dalam SQL database sistem manajamen, foreign key adalah pengenal unik atau kombinasi pengenal unik yang menghubungkan dua tabel atau lebih dalam suatu database. Foreign key juga sering disebut sebagai kunci asing.

    Langkah langkah membuat foreign key?

    Cara Membuat Foreign Key di PHPMyAdmin.
    Pertama kamu haru membuka tabel yang ingin kamu tambahkan foreign key tersebut dan buka tab 'Structure'. Kamu akan melihat sub menu 'Relation View'..
    Pilih kolom yang menampung kunci asing serta tabel yang akan kamu referensikan dengan foreign key tersebut..

    Apa itu foreign key dalam database?

    Kunci asing (foreign key) adalah sebuah atribut yang terdapat didalam suatu tabel yang dimana untuk digunakan untuk menciptakan hubungan antara dua tabel. Di dalam relational database penggunaan foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau juga dikenal dengan tabel master.