Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Melemparkan Ralat 'BLOB/TEXT Lajur Digunakan dalam Spesifikasi Utama Tanpa Panjang Kunci'?

Mengapa MySQL Melemparkan Ralat 'BLOB/TEXT Lajur Digunakan dalam Spesifikasi Utama Tanpa Panjang Kunci'?

Mary-Kate Olsen
Lepaskan: 2025-01-19 23:32:15
asal
1003 orang telah melayarinya

Why Does MySQL Throw a

Ralat pangkalan data MySQL: menggunakan lajur BLOB/TEXT tanpa panjang kunci dalam spesifikasi kunci

Apabila anda menghadapi ralat "Penggunaan lajur BLOB/TEXT 'message_id' dalam spesifikasi kunci tanpa panjang kunci", ini adalah kerana MySQL tidak boleh mengindeks keseluruhan panjang lajur BLOB atau TEXT. Lajur ini memerlukan panjang kunci yang ditentukan untuk memastikan keunikan.

Sebab ralat

Ralat ini berlaku terutamanya apabila jenis TEXT atau BLOB (termasuk TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT dan LONGTEXT) ditentukan sebagai kunci utama atau digunakan untuk pengindeksan tanpa menyatakan panjang kunci.

Penyelesaian

Untuk menyelesaikan isu ini, terdapat beberapa cara:

  • Alih keluar lajur TEXT/BLOB daripada kunci: Gantikannya dengan lajur lain yang boleh diindeks.
  • Tetapkan kunci utama pada medan berbeza: Jika medan yang sesuai wujud, gunakannya sebagai kunci utama.
  • Hadkan panjang lajur: Tukar lajur kepada VARCHAR(n) dan nyatakan panjang maksimum. VARCHAR mempunyai panjang maksimum 255 aksara secara lalai.

Nota lain

  • Panjang VARCHAR salah: Pastikan panjang lajur VARCHAR tidak melebihi 255 aksara, jika tidak MySQL akan menukarnya kepada jenis TEXT, menyebabkan ralat yang sama.
  • Kekangan Sedia Ada: Masalah mungkin timbul apabila menukar jenis lajur jika lajur TEXT atau BLOB adalah sebahagian daripada kekangan atau indeks unik sedia ada.

Rujukan

Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'BLOB/TEXT Lajur Digunakan dalam Spesifikasi Utama Tanpa Panjang Kunci'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan