Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat MySQL: 'Lajur BLOB/TEXT Digunakan dalam Spesifikasi Utama Tanpa Panjang Kunci'?
Menyelesaikan masalah Ralat MySQL: Lajur BLOB/TEXT dalam Spesifikasi Utama
Panduan ini menangani ralat MySQL "lajur BLOB/TEXT 'message_id' yang digunakan dalam spesifikasi kunci tanpa panjang kunci." Ralat ini berlaku apabila lajur BLOB atau TEKS digunakan dalam kunci utama atau indeks tanpa menyatakan panjangnya.
Masalahnya berpunca daripada sifat pembolehubah panjang jenis data BLOB dan TEKS. MySQL tidak dapat menjamin keunikan tanpa had saiz yang ditetapkan. Oleh itu, apabila mengindeks atau menggunakan jenis ini sebagai kunci utama, panjang kunci mesti ditentukan.
Walau bagaimanapun, MySQL tidak membenarkan pengehadan panjang kunci pada medan TEXT atau BLOB. Penyelesaiannya ialah sama ada mengalih keluar lajur BLOB atau TEKS daripada indeks atau kunci utama, atau pilih lajur lain sebagai kunci utama.
Jika anda berhasrat untuk mengehadkan saiz lajur TEXT atau BLOB, pertimbangkan untuk menggunakan VARCHAR
sebaliknya. Nyatakan panjang maksimum dalam kurungan; contohnya, VARCHAR(255)
mengehadkan lajur kepada 255 aksara.
Walaupun tanpa lajur BLOB atau TEXT, ralat mungkin berterusan disebabkan isu dengan panjang lajur VARCHAR
. VARCHAR
mempunyai panjang maksimum 255 aksara. Jika anda telah menentukan panjang yang terlalu besar (seperti VARCHAR(512)
), MySQL mungkin menukarnya secara automatik kepada SMALLTEXT
, menyebabkan ralat. Pastikan VARCHAR
saiz medan anda di bawah 256 aksara.
Untuk mendapatkan maklumat yang lebih terperinci tentang MySQL Error 1170, terutamanya mengenai jenis TEXT/BLOB dalam kunci dan kunci utama, rujuk dokumentasi yang dirujuk.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat MySQL: 'Lajur BLOB/TEXT Digunakan dalam Spesifikasi Utama Tanpa Panjang Kunci'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!