Rumah > pangkalan data > tutorial mysql > Ralat MySQL 1452: Bagaimana untuk Menyelesaikan Pelanggaran Kekangan Utama Asing?

Ralat MySQL 1452: Bagaimana untuk Menyelesaikan Pelanggaran Kekangan Utama Asing?

Patricia Arquette
Lepaskan: 2024-12-28 02:11:10
asal
521 orang telah melayarinya

MySQL Error 1452: How to Resolve Foreign Key Constraint Violations?

Pelanggaran Kekangan Kunci Asing MySQL: Ralat 1452

Apabila cuba mewujudkan kekangan kunci asing antara dua jadual, anda mungkin menghadapi ralat " Ralat Mysql 1452 - Tidak boleh menambah atau mengemas kini baris anak: kekangan kunci asing gagal." Ralat ini menunjukkan bahawa ketidakkonsistenan wujud antara jadual yang dirujuk dan rujukan.

Memeriksa kenyataan CREATE TABLE untuk kedua-dua jadual mendedahkan perkara berikut:

  • jadual kod sumber: Mengandungi kekangan kunci asing yang merujuk beberapa jadual lain (bahasa, pengguna, kategori).
  • sourcecodes_tags jadual: Mengandungi kekangan kunci asing yang merujuk kepada jadual kod sumber.

Ralat berlaku secara khusus apabila cuba menambah kekangan kunci asing daripada sourcecodes_tags kepada sourcecodes.

Untuk menyelesaikan ralat ini, kemungkinan besar jadual sourcecodes_tags mengandungi nilai untuk sourcecode_id yang tidak lagi wujud dalam sourcecodes table.

Untuk mengenal pasti nilai yang tidak konsisten ini, 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;
Salin selepas log masuk

Pertanyaan ini akan mengembalikan senarai sourcecode_id nilai daripada sourcecodes_tags yang tidak sepadan dengan mana-mana entri yang sah dalam kod sumber. Dengan mengalih keluar nilai yang tidak konsisten ini daripada sourcecodes_tags, kekangan kunci asing boleh diwujudkan dengan jayanya.

Atas ialah kandungan terperinci Ralat MySQL 1452: Bagaimana untuk Menyelesaikan Pelanggaran Kekangan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan