Jadual Kandungan
Kod Ralat: 1005. Tidak dapat mencipta jadual ... (errno: 150)
Rumah pangkalan data tutorial mysql Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?

Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?

Dec 06, 2024 am 11:48 AM

Why Am I Getting MySQL Error 1005 (errno: 150) When Creating a Foreign Key Constraint?

Kod Ralat: 1005. Tidak dapat mencipta jadual ... (errno: 150)

Dalam percubaan anda untuk mencipta kekangan kunci asing antara jadual sira_no dan metal_kod , anda menemui Kod Ralat 1005, menunjukkan ketidakupayaan untuk mencipta jadual disebabkan oleh errno 150.

Ralat ini timbul kerana rujukan kunci utama yang salah dalam kod anda. Apabila mentakrifkan hubungan kunci asing, medan yang dirujuk dalam jadual induk mesti wujud, sepadan dengan jenis data dan saiz medan kunci asing dan mempunyai indeks atau menjadi kunci utama.

Langkah Penyelesaian Masalah :

  1. Semak Definisi Medan: Pastikan METAL_KODU medan dalam kedua-dua jadual mempunyai jenis dan saiz data yang sama (mis., kedua-duanya hendaklah VARCHAR(4), bukan VARCHAR(5)), termasuk sifat yang ditandatangani atau tidak ditandatangani. Semak sensitiviti huruf besar juga.
  2. Buat Indeks: Sahkan bahawa medan METAL_KODU yang dirujuk dalam jadual metal_kod mempunyai indeks. Tanpa indeks, kekangan kunci asing tidak boleh diwujudkan.
  3. Semak Jenis Jadual: Kedua-dua jadual yang terlibat dalam perhubungan mesti menggunakan enjin storan InnoDB untuk menyokong kekangan kunci asing.
  4. Periksa Nama Kunci Asing: Pastikan nama kunci asing anda (METAL_KODU) tidak menjadi pendua kunci sedia ada.
  5. Kendalikan Nilai Null: Jika medan METAL_KODU dalam jadual induk ditetapkan kepada NOT NULL dan anda telah menentukan ON DELETE SET NULL dalam kekangan kunci asing, tukar sama ada sifat lajur atau gelagat lata.
  6. Carset dan Pengumpulan: Semak sama ada set aksara dan tetapan penyusunan sepadan untuk kedua-dua jadual dan lajur utama.
  7. Alih Keluar Nilai Lalai: Jika lajur kunci asing anda mempunyai nilai lalai (mis., lalai=0), alih keluarnya.
  8. Semak Kekunci Komposit: Jika medan METAL_KODU ialah sebahagian daripada komposit masukkan ke dalam jadual induk, cipta indeks berasingan untuk medan itu untuk menyokong kekangan kunci asing.
  9. Semak Sintaks: Semak semula pernyataan ALTER TABLE anda dan pastikan nama medan ditaip dengan betul.
  10. Panjang Kunci Asing: Pastikan nama kunci asing anda tidak melebihi maksimum panjang 64 aksara.

Dengan menangani isu yang berpotensi ini, anda boleh menyelesaikan Kod Ralat 1005 dan berjaya mewujudkan hubungan kunci asing antara jadual sira_no dan metal_kod.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1005 (errno: 150) Apabila Mencipta Kekangan Kunci Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kurangkan penggunaan memori MySQL di Docker Kurangkan penggunaan memori MySQL di Docker Mar 04, 2025 pm 03:52 PM

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Mar 04, 2025 pm 04:01 PM

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif Apa itu SQLite? Gambaran Keseluruhan Komprehensif Mar 04, 2025 pm 03:55 PM

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Mar 04, 2025 pm 03:54 PM

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Mar 04, 2025 pm 03:49 PM

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Mar 18, 2025 pm 12:00 PM

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?

See all articles