[HELP] eror 1452 pada phpmysql saat membuat foreignkey


Status
Not open for further replies.

noozle369

Beginner 1.0
Saya ada kendala dalam membuat foreignkey di php mysql yaitu keluar " error 1452 - Cannot add or update a child row: a foreign key constraint fails" . saya sudah mengecek semua tabel saya sudah innodb. saya juga sudah membuat index untuk fk.

dalam kasus ini saya mempunyai tabel whana dengan primary key = id_foto varchar(5). tabel foto ini sebagai master.
dan tabel foodcourt yang memiliki primary key = id_foodcourt dan didalam tabel foodcourt saya beri id_foto varchar(5) sebagai fk ke tabel foto. id_foto dalam tabel foodcourt ini sudah saya deklarasikan sebagai index.. dan saya masuk pada relation view punya tabel foodcourt, lalu pada id_foto di kolom foreignkey(Innodb) saya pilih 'foto'.'id_foto' ketika saya save muncul erorr 1452.. knapa ya? apa ada yang sala?
terima kasih sebelumnya
 

dpnux

Expert 1.0
Kode kesalahan yang cukup populer. Pengalaman saya karena tipe data dan ukuran id_foto berbeda antara dua table tersebut. Jadi misalnya PK id_foto int unsigned maka FK nya juga harus int unsigned. Kalau varchar/char ukurannya harus sama termasuk atributenya, dan kalau NULL tidak mungkin karena itu PK. CMIIW :)

Ada juga kalanya error itu muncul tiba - tiba, jawaban saya belum tentu benar karena ada kejadian lain yang mengakibatnya error 1452 muncul.
 

dpnux

Expert 1.0
akhirnya bisa Tuan setelah saya menghapus semua isi dari tabel yang memiliki FK... wkkwkw...

Terima kasih update nya.

Yap, salah duanya memang itu :). Update/Delete di table parent (PK) tidak bisa dilakukan apabila punya data di table FK. Hal ini berlaku apabila ON DELETE dan/atau ON UPDATE terset DEFAULT, RESTRICT atau NO ACTION. Kalau mau hapus, yah hapusnya berurutan, dari data table yang pakai FK dulu selanjutnya ke table PK. :D

Terus kalau insert/update di table child, nilai FKnya kudu ada di table parent kecuali field FKnya dibolehkan NULL :)
 
Last edited:
Status
Not open for further replies.

Top