Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Melemparkan Ralat 'spesifikasi utama tanpa panjang kunci' dengan Lajur BLOB atau TEKS?
Menyelesaikan masalah "spesifikasi utama MySQL tanpa panjang kunci" Ralat
Ralat ini biasanya timbul apabila lajur BLOB atau TEKS digunakan dalam kunci utama atau definisi indeks tanpa menyatakan panjang kunci.
Memahami Masalah
Mekanisme pengindeksan MySQL mempunyai had dengan lajur BLOB dan TEXT kerana panjang berubah-ubahnya. Pangkalan data tidak dapat menjamin keunikan tanpa panjang yang ditentukan, oleh itu ralat. Panjang tetap diperlukan untuk pengesahan keunikan kunci yang betul.
Penyelesaian
Beberapa pendekatan boleh menyelesaikan masalah ini:
VARCHAR(n)
, dengan 'n' mewakili had aksara tertentu (mis., VARCHAR(255)
). Ini menyediakan data panjang boleh ubah dengan panjang maksimum yang ditentukan, sesuai untuk pengindeksan.Pertimbangan Penting
VARCHAR
panjang di bawah 256 aksara. Melebihi had ini secara automatik menukar lajur kepada SMALLTEXT
, berpotensi memperkenalkan semula isu panjang kunci.Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'spesifikasi utama tanpa panjang kunci' dengan Lajur BLOB atau TEKS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!