[HELP] eror 1452 pada phpmysql saat membuat foreignkey

Discussion in 'Desain Web dan Programming' started by noozle369, 3 May 2012.

Thread Status:
Not open for further replies.
  1. noozle369

    noozle369 Beginner 1.0

    Messages:
    13
    Likes Received:
    0
    Trophy Points:
    1
    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
     
  2. dpnux

    dpnux Expert 1.0

    Messages:
    455
    Likes Received:
    28
    Trophy Points:
    28
    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.
     
  3. noozle369

    noozle369 Beginner 1.0

    Messages:
    13
    Likes Received:
    0
    Trophy Points:
    1
    akhirnya bisa Tuan setelah saya menghapus semua isi dari tabel yang memiliki FK... wkkwkw...
     
  4. dpnux

    dpnux Expert 1.0

    Messages:
    455
    Likes Received:
    28
    Trophy Points:
    28
    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: 10 May 2012
Loading...
Thread Status:
Not open for further replies.

Share This Page

Loading...