Membuat, Mengedit, dan Menghapus Foreign Key (FK) Dengan phpMyAdmin

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:

  1. 3 Syarat membuat foreign key: (1) Storage Engine InnoDb, (2) field sebagai index, (3) semua nilai pada field child table ada di field referensi pada parent table.
  2. Mengubah atau membuat Storage Engine menjadi InnoDB pada phpMyAdmin.
  3. Membuat foreign key dengan phpMyAdmin.
  4. Mengapa Link Relation View Tidak Muncul.
  5. Mengedit atau menghapus foreign key dengan phpMyAdmin.
  6. Error yang ditemui saat membuat foreign key.

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_cek_tabel_innodb_phpmyadmin

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

icon_index_pada_field

Gambar 2. Icon Index Pada Field

Melihat index pada phpMyAdmin <= 4.0

melihat_index_tabel_pma4.0

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:

    cek_storage_engine_phpmyadmin

    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:

    buat_tabel_innodb_phpmyadmin

    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_pelanggan,  dimana:

  • field id_produk  merupakan referensi dari field id_produk yang ada di tabel produk.
  • field  id_pelanggan  merupakan referensi dari field id_pelanggan pada tabel pelanggan.  Struktur tabel dan hubungan antar tabel akan tampak seperti gambar berikut:
foreign_key_antar_tabel_pma

Gambar 6. Foreign Key Antar Tabel

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

link_relation_view_phpmyadmin4.0

Gambar 6. Link Relation View Pada phpMyAdmin 4.0

Letak Link Relation View Pada phpMyAdmin >= 4.4

link_relation_view_phpmyadmin4.5

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):

add_constrant_error

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_pelanggan  tampak seperti gambar berikut:

Foreign Key Constraint Pada phpMyAdmin >= 4.4

membuat_fk_pada_phpmyadmin4.5

Gambar 9. Foreign Key Constraint Pada phpMyAdmin 4.5

Foreign Key Constraint Pada phpMyAdmin <=  4.0

membuat_fk_pada_phpmyadmin4.0

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 fk_sales_produk, 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 (klik di sini), 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 (klik di sini), 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_pelanggan  (tabel sales) yang tidak ada pada tabel pelanggan,  dimana  field id_pelanggan  (tabel sales)  merupakan referensi dari  field id_pelanggan (tabel pelanggan) .

Untuk mengatasi error tersebut, tambahkan nilai id_pelanggan yang ada di tabel sales namun belum ada di  tabel pelanggan.

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.

35 Feedback dari pembaca

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com

  1. Tutorial Grocery CRUD Lengkap
  2. Implementasi HMVC Pada Codeigniter 4
  3. Trik Coding Cepat dan Efisien Pada PHP
  4. PHP Admin Template Dashboard
  5. Prefix Tabel Pada Database, Perlukah?
  6. Same Origin Policy – Apa dan Bagaimana Mengatasinya?
  7. JSONP Dengan Javascript dan jQuery – Lintas Domain
  8. JSON Pada Javascript – Panduan Lengkap
  9. JSON Pada Dokumen HTML
  10. JSON Dari Database – PHP dan MySQL