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

Mengapa Saya Mendapat Ralat 'Tidak Dapat Mencipta Jadual' MySQL (Ralat: 150)?

Susan Sarandon
Susan Sarandonasal
2025-01-20 02:19:09629semak imbas

Why Am I Getting a MySQL

Menyelesaikan masalah Ralat "Tidak Dapat Mencipta Jadual" MySQL (Ralat: 150)

Mencipta jadual melalui skrip SQL kadangkala boleh mengakibatkan ralat "MySQL: Can't create table (errno: 150)." Ini kerap berlaku semasa .sql import fail, yang membawa kepada kegagalan penciptaan jadual.

Punca Punca:

Ralat, "Ralat 150: Kekangan kunci asing tidak betul," menunjukkan ketidakpadanan antara definisi jadual dan kekangan kunci asing yang merujuk. Jadual yang baru dibuat tidak memenuhi keperluan kunci asing.

Penyelesaian:

Dokumentasi FOREIGN KEY MySQL menyatakan: Jadual yang dicipta semula mesti sepadan dengan kekangan kunci asing yang merujuknya dengan tepat. Ini bermakna nama lajur, jenis data dan indeks yang sama pada kunci yang dirujuk adalah penting. Kegagalan untuk memenuhi syarat ini menghasilkan Ralat 1005, dengan Ralat 150 dicatatkan dalam mesej, menandakan kekangan kunci asing yang dibentuk dengan salah.

Oleh itu:

  • Nama lajur dan jenis data mesti sepadan dengan kekangan yang dirujuk.
  • Indeks pada kunci yang dirujuk adalah wajib.
  • Takrif jadual mestilah tidak melanggar kekangan kunci asing.

Langkah Nyahpepijat:

  1. Pengesahan Definisi Lajur: Sahkan nama lajur jadual baharu dan jenis data mencerminkan nama dalam skema asal.
  2. Semakan Indeks: Sahkan kewujudan indeks pada kekunci yang dirujuk dalam kedua-dua jadual asal dan baharu.
  3. Semakan Kekangan Kunci Asing: Periksa dengan teliti kekangan kunci asing yang merujuk jadual. Pastikan ia ditakrifkan dengan tepat dan tuding pada lajur yang betul dalam jadual yang dirujuk.
  4. .sql Pemeriksaan Skrip: Periksa fail .sql dengan teliti untuk kesempurnaan dan ketiadaan ralat sintaks yang mungkin menjejaskan definisi atau kekangan jadual.

Dengan membetulkan kemungkinan ketidakkonsistenan ini, definisi jadual akan sejajar dengan kekangan kunci asing yang merujuk, menyelesaikan masalah "Ralat 150: Kekangan kunci asing tidak betul".

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