Ralat MySQL: Lajur BLOB/TEXT dalam Spesifikasi Utama Tanpa Panjang
Artikel ini menangani ralat MySQL biasa: "BLOB/TEXT column 'message_id' yang digunakan dalam spesifikasi kunci tanpa panjang kunci." Ini biasanya timbul apabila mengubah suai kunci utama jadual, contohnya, menukarnya daripada varchar(255)
kepada text
. Punca utama ialah keperluan MySQL untuk panjang kunci apabila menggunakan lajur BLOB atau TEXT dalam kekangan unik atau kunci utama.
Memahami Ralat
Ketidakupayaan MySQL untuk menguatkuasakan kekangan kunci unik dengan cekap pada lajur BLOB atau TEXT yang boleh ubah panjang tanpa panjang kunci yang ditentukan adalah isu teras. Ketiadaan panjang menjadikan pengesahan keunikan sukar untuk pangkalan data.
Menyelesaikan Ralat
Beberapa pendekatan boleh membetulkan perkara ini:
Alih keluar Lajur BLOB/TEKS daripada Kunci: Penyelesaian paling mudah, jika boleh, adalah untuk mengalih keluar lajur TEXT
atau BLOB
daripada kunci utama atau definisi indeks unik.
Gunakan VARCHAR: Pertimbangkan untuk menukar lajur TEXT
atau BLOB
kepada VARCHAR
dan nyatakan panjang yang sesuai (sehingga 255 aksara). VARCHAR
menawarkan prestasi yang lebih baik untuk kekangan utama.
Kunci Utama Alternatif: Jika tiada pilihan mengalih keluar atau menukar lajur, pilih medan lain sebagai kunci utama.
(Tidak Berkesan) ALTER TABLE
dengan Panjang: Walaupun anda boleh cuba menggunakan ALTER TABLE
dengan panjang kunci untuk TEXT
atau BLOB
lajur, ini tidak disokong oleh MySQL.
Nota Penting
Panjang VARCHAR: Kekalkan VARCHAR
panjang lajur di bawah 256 aksara untuk menghalang penukaran automatik MySQL kepada SMALLTEXT
, yang akan mencetuskan semula ralat.
Jenis Lajur Lain: Ralat ini tidak terhad kepada lajur TEXT
dan BLOB
. Semak semula bahawa panjang kunci untuk semua lajur ditentukan dengan betul, terutamanya memastikan panjang VARCHAR
tidak melebihi 255.
Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'Lajur BLOB/TEXT dalam Spesifikasi Utama Tanpa Panjang', dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!