Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Memberi Saya Ralat 'Tidak Dapat Menambah Kekangan Kunci Asing'?

Mengapa MySQL Memberi Saya Ralat 'Tidak Dapat Menambah Kekangan Kunci Asing'?

Susan Sarandon
Susan Sarandonasal
2025-01-18 20:26:13689semak imbas

Why is MySQL Giving Me a

Menyelesaikan Isu Kekangan Utama Asing MySQL

Mencipta perhubungan utama asing dalam MySQL kadangkala boleh membawa kepada ralat yang mengecewakan:

<code>ERROR 1215 (HY000): Cannot add foreign key constraint</code>

Mesej ini menandakan masalah mewujudkan pautan kunci asing antara jadual. Mari terokai punca dan penyelesaian biasa.

Percanggahan Jenis Data:

Sahkan bahawa jenis data lajur anak dan ibu bapa adalah sama. Sebagai contoh, jika lajur induk ialah INT, lajur anak yang sepadan juga mestilah INT. Sebarang ketidakpadanan akan menghalang kekangan daripada ditambah.

Jujukan Pembuatan Jadual:

Walaupun amalan terbaik menentukan membuat jadual induk sebelum jadual anak, anda boleh memintas pengehadan ini buat sementara waktu. Gunakan arahan berikut sebelum membuat jadual anda:

<code>SET FOREIGN_KEY_CHECKS=0;</code>

Ini melumpuhkan semakan kunci asing, membolehkan tertib penciptaan jadual yang fleksibel. Ingat untuk mendayakan semula semakan selepas itu menggunakan SET FOREIGN_KEY_CHECKS=1;

Menunjukkan Masalah dengan <code>SHOW ENGINE INNODB STATUS;</code>:

Untuk pengecaman ralat yang tepat, laksanakan:

<code>SHOW ENGINE INNODB STATUS;</code>

Periksa bahagian LATEST FOREIGN KEY ERROR untuk mendapatkan butiran khusus tentang kekangan yang gagal. Ini memberikan maklumat penting untuk penyelesaian masalah yang disasarkan.

Atas ialah kandungan terperinci Mengapa MySQL Memberi Saya Ralat 'Tidak Dapat Menambah 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