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
585 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!

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