Pelanggaran Kekangan Kunci Asing: Memahami Ralat 1452 dalam MySQL
Ralat MySQL 1452, "Tidak boleh menambah atau mengemas kini baris anak: kunci asing kekangan gagal," timbul apabila anda cuba memasukkan atau mengubah suai data dalam jadual anak semasa melanggar hubungan utama asing. Ralat ini menunjukkan bahawa rekod yang dirujuk dalam jadual induk tiada atau tidak sah.
Dalam senario yang anda telah terangkan, anda cuba menambah kunci asing pada jadual sourcecodes_tags, merujuk kepada jadual kod sumber. Walau bagaimanapun, ia gagal kerana kemungkinan konflik.
Untuk menyelesaikan isu ini, anda harus mengenal pasti dahulu sama ada terdapat sebarang rekod yatim dalam jadual sourcecodes_tags. Rekod yatim ialah rekod yang merujuk baris yang tidak wujud dalam jadual kod sumber.
Untuk mencari rekod yatim, laksanakan pertanyaan berikut:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
Pertanyaan ini akan menyenaraikan ID kod sumber yang berfungsi tidak wujud dalam jadual induk.
Setelah anda mengenal pasti rekod yatim, anda boleh mengeluarkannya daripada jadual sourcecodes_tags menggunakan pernyataan DELETE. Selepas memadamkan rekod yatim, anda boleh berjaya menambah kekangan kunci asing.
Selain itu, adalah penting untuk memastikan anda memasukkan ID kod sumber yang sah ke dalam jadual sourcecodes_tags. Jika ID yang dimasukkan tidak wujud dalam jadual kod sumber, ia akan mengakibatkan ralat 1452.
Atas ialah kandungan terperinci Ralat MySQL 1452: Bagaimana Saya Menyelesaikan Pelanggaran Kekangan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!