Rumah > pangkalan data > tutorial mysql > Mengapa Pangkalan Data Saya Membuang Ralat 'Lajur Kunci Indeks Tidak Sah' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pangkalan Data Saya Membuang Ralat 'Lajur Kunci Indeks Tidak Sah' dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-12-18 15:32:11
asal
842 orang telah melayarinya

Why Does My Database Throw an

Lajur Kunci Indeks Tidak Sah: Memahami dan Menyelesaikan Ralat

Mesej ralat "Lajur 'kunci' dalam jadual 'misc_info' adalah daripada jenis yang tidak sah untuk digunakan sebagai lajur kunci dalam indeks" menunjukkan isu dengan jenis data lajur yang digunakan sebagai kunci dalam indeks. Walaupun carian pantas mendedahkan bahawa had panjang indeks ialah 450 aksara, ini sahaja tidak memberikan penyelesaian kepada ralat.

Dalam kes ini, ralat berkenaan dengan lajur bernama "kunci" dengan jenis data nvarchar(maks). Untuk menyelesaikan masalah ini, jenis data lajur kunci mesti diubah suai kepada jenis yang sah untuk kunci indeks. Kekangan unik pada kunci indeks mempunyai had saiz maksimum 8000 bait setiap baris, dengan hanya 900 bait pertama digunakan. Oleh itu, untuk memastikan keserasian maksimum dan mengelakkan kemungkinan ralat, lajur kunci harus mempunyai jenis data yang membenarkan panjang maksimum 450 aksara.

Pernyataan SQL yang disemak berikut menyelesaikan ralat dengan mengubah suai jenis data lajur kunci kepada nvarchar(450):

CREATE TABLE [misc_info] (
    [id] INTEGER PRIMARY KEY IDENTITY NOT NULL,
    [key] NVARCHAR(450) UNIQUE NOT NULL,
    [value] NVARCHAR(MAX) NOT NULL
);
Salin selepas log masuk

Dengan menggunakan nvarchar(450) untuk lajur kunci, anda boleh mencipta indeks unik tanpa menghadapi ralat "jenis tidak sah untuk lajur kunci". Ambil perhatian bahawa jika boleh, menggunakan varchar dan bukannya nvarchar mungkin membolehkan anda menambah panjang lajur kunci kepada 900 aksara.

Atas ialah kandungan terperinci Mengapa Pangkalan Data Saya Membuang Ralat 'Lajur Kunci Indeks Tidak Sah' dan Bagaimana Saya Boleh Membetulkannya?. 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