Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Throw 'Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal' (Ralat 1452)?
Isu Kekangan Kunci Asing MySQL: Tidak Dapat Menambah atau Mengemas kini Barisan Kanak-kanak
Apabila cuba mewujudkan kekangan kunci asing dalam jadual MySQL, anda mungkin menghadapi ralat 1452: "Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal." Isu ini berlaku apabila baris anak dalam satu jadual merujuk baris induk yang tidak lagi wujud dalam jadual lain.
Dalam senario yang disediakan, anda cuba menambah kunci asing dalam jadual sourcecodes_tags yang merujuk kepada jadual kod sumber. Walau bagaimanapun, mesej ralat menunjukkan bahawa terdapat rekod yatim dalam jadual sourcecodes_tags yang merujuk kepada baris yang tidak wujud dalam jadual kod sumber.
Untuk menyelesaikan isu ini, anda perlu mengenal pasti rekod yang yatim itu terlebih dahulu. Anda boleh menggunakan pertanyaan berikut untuk mendapatkan semula rekod ini:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
Setelah anda mengenal pasti rekod yatim, anda boleh mengalih keluarnya daripada jadual sourcecodes_tags. Ini akan membolehkan anda berjaya menambah kekangan kunci asing.
Adalah penting untuk memastikan integriti rujukan dalam jadual pangkalan data anda dengan menguatkuasakan kekangan kunci asing. Kekangan ini menghalang ketidakkonsistenan data dan mengekalkan hubungan antara jadual. Dengan menangani rekod yatim, anda boleh menyelesaikan ralat 1452 dan mewujudkan hubungan yang betul antara jadual pangkalan data anda.
Atas ialah kandungan terperinci Mengapa MySQL Throw 'Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal' (Ralat 1452)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!