Rumah >pangkalan data >tutorial mysql >Ralat MySQL 1005: Bolehkah Kunci Utama Menjadi Kunci Asing, dan Bagaimana Saya Membetulkan Isu Kekangan Kunci Asing?

Ralat MySQL 1005: Bolehkah Kunci Utama Menjadi Kunci Asing, dan Bagaimana Saya Membetulkan Isu Kekangan Kunci Asing?

DDD
DDDasal
2024-12-05 20:31:11303semak imbas

MySQL Error 1005: Can a Primary Key Be a Foreign Key, and How Do I Fix Foreign Key Constraint Issues?

Ralat Kunci Asing MySQL 1005: Kunci Utama sebagai Kunci Asing

Bolehkah Kunci Utama Juga Menjadi Kunci Asing?

Tidak, tidak mungkin untuk menentukan kunci utama sebagai kunci asing dalam MySQL. Kunci utama secara unik mengenal pasti rekod dalam jadual, manakala kunci asing merujuk rekod dalam jadual lain. Menggabungkan kedua-dua peranan ini akan mengakibatkan kekangan bulat.

Kod Ralat 1005: Tidak Dapat Mencipta Jadual

Ralat yang dihadapi, "Ralat 1005: Tidak dapat mencipta jadual 'dbimmobili.condoni' (errno : 150)," menunjukkan bahawa MySQL tidak boleh mencipta jadual kerana masalah dengan kunci asing kekangan.

Indeks Hilang pada Jadual Rujukan

Mesej "Ralat dalam kekangan kunci asing jadual dbimmobili/valutazionimercato" menunjukkan bahawa indeks yang hilang menyebabkan masalah. MySQL memerlukan jadual yang dirujuk mempunyai indeks yang meliputi lajur yang dinyatakan dalam kunci asing.

Penyelesaian

Buat indeks pada jadual yang dirujuk (dbimmobili.Immobile) untuk lajur (ComuneImmobile, ViaImmobile , CivicoImmobile, InternoImmobile):

CREATE INDEX ix_ComuneViaCivicoInterno ON dbimmobili.Immobile (ComuneImmobile, ViaImmobile, CivicoImmobile, InternoImmobile);

Indeks ini akan memastikan MySQL boleh mencari rekod sepadan dengan cekap dalam jadual dbimmobili.Immobile apabila jadual dbimmobili.condoni merujuknya.

Atas ialah kandungan terperinci Ralat MySQL 1005: Bolehkah Kunci Utama Menjadi Kunci Asing, dan Bagaimana Saya Membetulkan Isu 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