Tidak Dapat Mencipta Ralat Jadual: Menyelesaikan masalah "Kod Ralat: 1005. Tidak dapat mencipta jadual '...'"
Ini ralat dalam MySQL berlaku apabila percubaan dibuat untuk mencipta jadual tetapi menghadapi masalah, dilambangkan dengan kod ralat 1005. Masalah khusus berkaitan kepada rujukan kunci asing.
Punca Potensi:
-
Medan Kunci Tidak Padan: Pastikan jenis dan saiz medan kunci utama dalam jadual yang dirujuk padankan tepat dengan medan kunci asing. Semak percanggahan dalam saiz (cth., INT lwn. BIGINT) atau status ditandatangani/tidak ditandatangani.
-
Indeks Hilang atau Kunci Bukan Utama: Cipta indeks pada medan kunci yang dirujuk jika tidak tidak mempunyai satu atau bukan kunci utama.
-
Kunci Asing Pendua Nama: Sahkan bahawa nama kunci asing adalah unik dalam pangkalan data. Tambahkan aksara rawak pada penghujung nama kunci untuk menguji ini.
-
Jenis Jadual Bukan InnoDB: Hubungan kunci asing memerlukan kedua-dua jadual daripada jenis InnoDB. Tukar jadual MyISAM kepada InnoDB.
-
NULL Konflik Kekangan: Pastikan medan utama yang dirujuk tidak mempunyai kekangan NOT NULL semasa menggunakan lata ON DELETE SET NULL. Benarkan nilai NULL jika perlu.
-
Charset/Collation mispatch: Semak sama ada kedua-dua jadual dan lajur utamanya menggunakan set aksara dan tetapan penyusunan yang sama.
-
Lalai Nilai pada Kunci Asing: Alih keluar sebarang nilai lalai yang ditetapkan pada lajur kunci asing, kerana ini boleh mengganggu merujuk.
-
Kunci Komposit Tanpa Indeks Individu: Cipta indeks berasingan untuk setiap medan kunci yang digunakan dalam kunci komposit, walaupun ia sudah diindeks sebagai sebahagian daripada komposit.
-
Sintaks Salah atau Nama Medan Salah Taip: Sahkan sintaks pernyataan ALTER anda dan semak kesilapan silap dalam nama medan yang terlibat dalam perhubungan.
-
Panjang Nama Kunci Asing Melebihi Had: Nama kunci asing hendaklah dalam had 64 aksara.
Untuk butiran lanjut dan penyelesaian yang berpotensi, rujuk dokumentasi MySQL: MySQL Error Number 1005 Can't create meja.
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!