ERROR 1452: Cannot add or update a child row: a foreign key constraint fails
Dalam tutorial MySQL kali ini saya akan membahas kesalahan ketika mencoba insert data ke sebuah tabel, dimana tabel tersebut mempunyai relasi dengan tabel lain melalui foreign key. Kesalahan tersebut yaitu ERROR 1452: Cannot add or update a child row: a foreign key constraint fails .
Foreign key adalah kunci utama dari tabel lain yang digunakan di tabel mana pun untuk menghubungkan keduanya. Kunci ini terikat oleh batasan foreign key yang ditentukan saat membuat tabel. Setiap operasi pada data tidak boleh melanggar batasan ini. Pelanggaran batasan ini dapat mengakibatkan kesalahan seperti diatas.
Kesalahan ini umumnya terjadi karena tabel memiliki beberapa nilai di bidang referensi tabel anak, yang tidak ada di bidang referensi/kandidat dari tabel induk.
Kadang-kadang, kita mungkin mendapatkan kesalahan ini ketika menerapkan batasan foreign ke tabel yang ada, sudah memiliki data di dalamnya . Beberapa jawaban lain menyarankan untuk menghapus data sepenuhnya dari tabel anak, lalu menerapkan batasan. Namun, ini bukan pilihan saat kita sudah memiliki data kerja/produksi di tabel anak. Dalam sebagian besar skenario, kita perlu memperbarui data di tabel anak .
Ada beberapa opsi yang harus dilakukan untuk menyelesaikan masalah diatas, yaitu :