Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Melemparkan Ralat 'spesifikasi utama tanpa panjang kunci' dengan Lajur BLOB atau TEKS?

Mengapa MySQL Melemparkan Ralat 'spesifikasi utama tanpa panjang kunci' dengan Lajur BLOB atau TEKS?

Linda Hamilton
Lepaskan: 2025-01-19 23:42:11
asal
809 orang telah melayarinya

Why Does MySQL Throw a

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:

  • Alih keluar BLOB/TEXT daripada Kekunci: Penyelesaian yang paling mudah selalunya ialah mengalih keluar lajur yang menyinggung daripada definisi kunci. Kenal pasti medan lain yang sesuai untuk pengenalan unik.
  • Gunakan Kunci Utama yang Berbeza: Jika lajur BLOB atau TEKS adalah penting untuk keunikan, pilih lajur lain sebagai kunci utama.
  • Gunakan VARCHAR dengan Sekatan Panjang: Tukar jenis lajur kepada 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

  • Kekalkan VARCHAR panjang di bawah 256 aksara. Melebihi had ini secara automatik menukar lajur kepada SMALLTEXT, berpotensi memperkenalkan semula isu panjang kunci.
  • Untuk butiran lanjut, rujuk sumber ini: "Ralat MySQL 1170 (42000): Lajur BLOB/TEXT Digunakan dalam Spesifikasi Utama Tanpa Panjang Kekunci"

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!

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