Rumah >pangkalan data >tutorial mysql >Kod Ralat 1005: Mengapa Saya Tidak Boleh Mencipta Jadual Ini dan Bagaimana Saya Membetulkannya?

Kod Ralat 1005: Mengapa Saya Tidak Boleh Mencipta Jadual Ini dan Bagaimana Saya Membetulkannya?

Barbara Streisand
Barbara Streisandasal
2024-12-04 14:52:10552semak imbas

Error Code 1005: Why Can't I Create This Table and How Do I Fix It?

Kod Ralat: 1005: Memahami Punca Punca dan Menyelesaikan Masalah

Kod ralat 1005, "Tidak boleh mencipta jadual '. ..' (errno: 150)", yang ditemui semasa operasi pangkalan data menunjukkan ketidakupayaan untuk mencipta jadual disebabkan oleh asas sebab. Ralat ini sering timbul apabila cuba menambah kekangan kunci asing pada jadual sedia ada.

Punca ralat ini biasanya terletak pada salah satu isu berikut:

Kunci Asing Salah Rujukan

Sahkan bahawa medan kunci utama yang dirujuk oleh kunci asing dalam jadual sira_no wujud dalam rujukan jadual (metal_kod) dengan jenis data yang sepadan dan kekangan. Jenis medan yang salah atau ketidakkonsistenan boleh menyebabkan mesej ralat ini.

Indeks Hilang pada Medan Dirujuk

Jika medan yang dirujuk dalam jadual metal_kod tidak mempunyai indeks, mencipta seseorang boleh menyelesaikan masalah tersebut. Indeks membolehkan carian yang lebih pantas dan memastikan capaian data yang cekap.

Charset dan Collation mispatch

Sahkan bahawa set aksara dan tetapan pengumpulan medan METAL_KODU dalam kedua-dua sira_no dan jadual metal_kod adalah sama. Perbezaan dalam tetapan ini boleh menghalang perbandingan data yang betul dan penubuhan kunci asing.

Punca Potensi Lain

Pertimbangkan faktor tambahan berikut yang mungkin menyumbang kepada ralat ini:

  • Nama kunci asing pendua
  • Saiz medan kunci tidak sepadan atau jenis
  • Format jadual MyISAM (InnoDB diperlukan untuk kekangan kunci asing)
  • Kekangan lata dengan medan BUKAN NULL
  • Nilai lalai pada lajur kunci asing
  • Tiada indeks individu pada medan kekunci gabungan
  • Ralat sintaks dalam pernyataan ALTER
  • Panjang nama kunci asing yang berlebihan

Untuk menyelesaikan isu ini dengan berkesan, adalah penting untuk 仔细检查 definisi hubungan asas, memastikan pengindeksan yang betul, mengesahkan keserasian jenis data dan menangani sebarang punca berpotensi lain.

Atas ialah kandungan terperinci Kod Ralat 1005: Mengapa Saya Tidak Boleh Mencipta Jadual Ini dan Bagaimana Saya 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