Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Melemparkan Ralat 'Kekangan Kunci Asing Dibentuk Secara Tidak Betul' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa MySQL Melemparkan Ralat 'Kekangan Kunci Asing Dibentuk Secara Tidak Betul' dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Patricia Arquetteasal
2025-01-19 05:54:10220semak imbas

Why Does MySQL Throw a

Ralat kekangan kunci asing MySQL: jenis tidak sepadan

Dalam MySQL, apabila cuba mewujudkan kekangan kunci asing antara jadual table1 dan table2, ralat "Kekangan kunci asing tidak diformatkan dengan betul" mungkin berlaku. Kekangan ini direka bentuk untuk memautkan lajur IDFromTable1 dalam jadual2 ke ID lajur dalam jadual1 untuk memastikan integriti rujukan.

Walaupun kedua-dua jadual menggunakan enjin storan InnoDB dan jenis data lajur adalah jenis aksara, ralat masih wujud. Punca masalah adalah perbezaan sifat lajur.

Secara khusus, lajur kunci asing IDFromTable1 dan ID lajur yang dirujuk mempunyai jenis atau panjang data yang berbeza. Untuk menyelesaikan masalah ini, anda mesti memastikan bahawa lajur sepadan yang mengambil bahagian dalam hubungan kunci asing mempunyai jenis dan panjang data yang sama.

Dalam contoh ini, lajur kunci asing ditakrifkan sebagai SMALLINT(5) UNSIGNED dan lajur yang dirujuk ialah INT(10) UNSIGNED. Ketidakpadanan jenis ini diselesaikan dengan menjajarkan atribut lajur, dengan itu berjaya mewujudkan kekangan kunci asing.

Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'Kekangan Kunci Asing Dibentuk Secara Tidak Betul' dan Bagaimana Saya Boleh Membetulkannya?. 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