Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Melemparkan Ralat 'Kekangan kunci asing dibentuk secara tidak betul'?
Menyelesaikan masalah Ralat Kekangan Utama Asing MySQL
Mencipta hubungan kunci asing dalam MySQL memerlukan perhatian yang teliti terhadap keserasian jenis data. Jenis atau panjang data yang tidak sepadan antara lajur kunci asing dan lajur kunci utama yang dirujuk akan mengakibatkan ralat "Kekangan kunci asing tidak terbentuk dengan betul".
Berikut ialah senario biasa:
ID
(kunci utama) dengan CHAR
jenis data.IDFromTable1
merujuk lajur ID
Jadual1.Percubaan untuk mencipta kekangan kunci asing menggunakan pertanyaan ini:
<code class="language-sql">ALTER TABLE `table2` ADD CONSTRAINT `FK1` FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`) ON UPDATE CASCADE ON DELETE CASCADE;</code>
akan gagal jika IDFromTable1
dan ID
mempunyai jenis atau panjang data yang berbeza. Contohnya, jika IDFromTable1
ialah VARCHAR(50)
dan ID
ialah CHAR(10)
, kekangan tidak akan dibuat.
Penyelesaian:
Penyelesaian adalah mudah: pastikan lajur kunci asing dan lajur yang dirujuk berkongsi tepat jenis data dan panjang yang sama. Melaraskan takrifan lajur untuk dipadankan akan menyelesaikan ralat dan membolehkan hubungan kunci asing diwujudkan dengan jayanya.
Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'Kekangan kunci asing dibentuk secara tidak betul'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!