Rumah  >  Artikel  >  pangkalan data  >  Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal - Cara menyelesaikan ralat MySQL: baris anak mempunyai kekangan kunci asing

Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal - Cara menyelesaikan ralat MySQL: baris anak mempunyai kekangan kunci asing

王林
王林asal
2023-10-05 08:22:55895semak imbas

Cannot add or update a child row: a foreign key constraint fails - 如何解决MySQL报错:子行有外键约束

Cara menyelesaikan ralat MySQL: sub-baris mempunyai kekangan kunci asing, contoh kod khusus diperlukan

Apabila menggunakan pangkalan data MySQL, kami mungkin menghadapi ralat "Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal". Ralat ini biasanya menunjukkan masalah kekangan kunci asing semasa memasukkan atau mengemas kini data. Artikel ini menerangkan cara menyelesaikan masalah ini dan menyediakan contoh kod khusus.

Pertama, mari kita fahami kekangan utama asing. Dalam pangkalan data, kunci asing ialah hubungan yang digunakan untuk mewujudkan sambungan antara jadual. Ia menunjuk kepada kunci utama jadual lain dan digunakan untuk mengekalkan ketekalan dan integriti data. Kekangan kunci asing mengehadkan syarat tertentu yang mesti dipenuhi semasa memasukkan atau mengemas kini data, jika tidak ralat akan dilemparkan.

Apabila kita menghadapi ralat "Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal", ia biasanya disebabkan oleh salah satu sebab berikut:

    #🎜 🎜# Kekangan kunci asing wujud, tetapi data yang dimasukkan atau dikemas kini tidak memenuhi syarat kekangan.
  1. Terdapat kekangan kunci asing, tetapi kunci primer yang sepadan tidak wujud dalam jadual utama.
Berikut ialah beberapa penyelesaian biasa:

    Periksa sama ada data memenuhi kekangan kunci asing: Sebelum memasukkan atau mengemas kini data, pastikan Data memenuhi syarat kekangan utama asing. Sebagai contoh, jika kunci asing berkaitan dengan kunci utama jadual lain, maka data yang dimasukkan atau dikemas kini pada medan kunci asing mesti wujud dalam jadual utama.
  1. Semak sama ada kunci utama yang sepadan wujud dalam jadual utama: Jika kunci utama yang sepadan tidak wujud dalam jadual utama, ralat kekangan kunci asing akan dicetuskan apabila memasukkan atau mengemas kini data subtable. Dalam kes ini, anda perlu memasukkan data kunci utama yang sepadan ke dalam jadual utama dahulu, dan kemudian memasukkan atau mengemas kini sub-jadual.
Berikut ialah contoh kod khusus untuk menggambarkan cara menyelesaikan masalah ini:

Andaikan kita mempunyai dua jadual: jadual pengguna (pengguna) dan jadual pesanan ( pesanan). Kunci utama jadual pengguna ialah ID pengguna (user_id), dan kunci asing jadual pesanan ialah ID pengguna, yang digunakan untuk mengaitkan jadual pengguna.

Pertama, kami mencipta jadual pengguna:

BUAT JADUAL pengguna(

user_id INT PRIMARY KEY AUTO_INNCREMENT,
LL nama pengguna) NOTARCHAR 🎜 🎜#);

Kemudian, kami mencipta jadual pesanan:

BUAT pesanan JADUAL(

order_id INT INT PRIMER KUNCI AUTO_INCREMENT,#ID pengguna,🎜 #🎜 🎜# order_date TARIKH,

KUNCI ASING (user_id) RUJUKAN pengguna(user_id)
);

Sekarang, kami ingin memasukkan sekeping data ke dalam jadual pesanan, tetapi ID pengguna tidak wujud Apabila dalam jadual pengguna, ralat kekangan kunci asing akan dicetuskan. Untuk menyelesaikan masalah ini, kita boleh terlebih dahulu memasukkan data pengguna yang sepadan ke dalam jadual pengguna, dan kemudian memasukkan data pesanan:

-- Masukkan data pengguna dahulu

MASUKKAN KE DALAM pengguna(nama pengguna ) NILAI ('John');

-- Kemudian masukkan data pesanan

MASUKKAN KE DALAM pesanan(id_pengguna, tarikh_pesanan) NILAI (1, '2022-01-01');#🎜🎜 ## 🎜🎜#Dengan kod sampel di atas, kami boleh menyelesaikan ralat "Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal".

Ringkasnya, semasa menyelesaikan ralat ini, kita perlu memastikan bahawa data memenuhi syarat kekangan kunci asing dan kunci primer yang sepadan wujud dalam jadual utama. Dengan menyemak data dan struktur jadual dengan teliti, serta memasukkan atau mengemas kini data dalam susunan yang betul, kami boleh menyelesaikan masalah ini dengan jayanya.


Semoga kandungan artikel ini akan membantu untuk menyelesaikan ralat "Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal". Jika anda menghadapi masalah yang sama, sila ambil penyelesaian yang sesuai berdasarkan situasi tertentu dan rujuk kepada contoh kod di atas. Semoga berjaya dengan operasi pangkalan data MySQL anda!

Atas ialah kandungan terperinci Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal - Cara menyelesaikan ralat MySQL: baris anak mempunyai kekangan kunci asing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn