Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat MySQL 1005: 'Tidak Dapat Mencipta Jadual'?

Mengapa Saya Mendapat Ralat MySQL 1005: 'Tidak Dapat Mencipta Jadual'?

DDD
DDDasal
2024-12-04 09:27:12750semak imbas

Why Am I Getting MySQL Error 1005:

Kod Ralat 1005: Memahami Isu 'Tidak Dapat Mencipta Jadual'

Apabila cuba melaksanakan pengubahsuaian pangkalan data, Kod Ralat 1005 mungkin timbul , disertakan dengan mesej "Tidak boleh membuat jadual '...'" (errno: 150). Ralat ini menghalang penciptaan jadual baharu atau pengubahsuaian jadual yang sedia ada.

Mengenalpasti Punca Punca

Punca ralat ini biasanya terletak pada punca utama yang salah rujukan utama. Walaupun penyelesaian yang ditemui dalam talian mungkin tidak menyelesaikan isu ini, terdapat beberapa punca diketahui yang boleh mencetuskan ralat ini:

  1. Jenis atau Saiz Data Tidak Padan: Kekunci utama dalam jadual berbeza yang terlibat dalam a hubungan kunci asing mesti sepadan dengan tepat dalam jenis dan saiz data. Sebagai contoh, jika satu diisytiharkan sebagai INT(10), satu lagi mestilah INT juga, bukan BIGINT atau SMALLINT.
  2. Indeks Hilang atau Kunci Bukan Utama: Pautan kunci asing medan memerlukan indeks yang sepadan atau mesti menjadi kunci utama jadual yang dirujuk.
  3. Kunci Asing Pendua Nama: Nama kunci asing mestilah unik dalam pangkalan data. Pertimbangkan untuk menambah pengecam unik pada nama kunci asing untuk menolak kemungkinan ini.
  4. Ketidakserasian dengan Jadual MyISAM: Kunci asing tidak disokong dalam jadual MyISAM. Pastikan kedua-dua jadual yang terlibat dalam perhubungan menggunakan enjin InnoDB.
  5. BUKAN NULL Kekangan pada Lajur Kunci Asing: Jika lata ON DELETE SET NULL ditentukan, lajur kunci asing tidak boleh ditetapkan kepada NOT NULL.
  6. Charset and Collate Tidak Padanan: Atribut Charset dan Collate untuk kunci utama mesti sepadan pada kedua-dua peringkat jadual dan medan.
  7. Sekatan Nilai Lalai: Elakkan daripada menetapkan nilai lalai (cth., lalai=0) pada lajur kunci asing.
  8. Penghadan Indeks: Medan utama yang digunakan dalam kunci komposit memerlukan indeks individu untuk rujukan kunci asing, walaupun ia mempunyai indeks sebagai sebahagian daripada kunci komposit.
  9. Ralat Sintaks atau Penamaan: Semak dengan teliti pernyataan ALTER untuk ralat sintaks atau kesilapan taip dalam nama medan.
  10. Had Nama Melebihi: Panjang nama kunci asing tidak boleh melebihi 64 aksara.

Sumber Tambahan

Untuk mendapatkan maklumat lanjut tentang kod ralat khusus ini, rujuk sumber berikut:

  • Nombor Ralat MySQL 1005 Tidak dapat mencipta jadual

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 1005: 'Tidak Dapat Mencipta Jadual'?. 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