Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Melemparkan Ralat 'Kekangan kunci asing dibentuk secara tidak betul'?

Mengapa MySQL Melemparkan Ralat 'Kekangan kunci asing dibentuk secara tidak betul'?

DDD
DDDasal
2025-01-19 05:55:10230semak imbas

Why Does MySQL Throw a

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:

  • Jadual1: Mengandungi lajur ID (kunci utama) dengan CHAR jenis data.
  • Jadual2: Mengandungi lajur 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!

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