Jenis Lajur Kunci Indeks Tidak Sah: "adalah jenis yang tidak sah untuk digunakan sebagai lajur kunci dalam indeks"
Dalam konteks sistem pengurusan pangkalan data hubungan, mesej ralat yang menunjukkan "Lajur 'kunci' dalam jadual 'misc_info' adalah jenis yang tidak sah untuk digunakan sebagai lajur kunci dalam indeks" timbul apabila cuba mencipta indeks unik pada lajur jenis data tertentu.
Konteks Masalah:
Mesej ralat yang disediakan menyerlahkan bahawa percubaan untuk mencipta indeks unik pada lajur bernama "kunci" dalam jadual "misc_info" telah gagal. Jenis data lajur, nvarchar(maks), tidak serasi dengan digunakan sebagai kunci indeks, yang membawa kepada ralat.
Penyelesaian:
Indeks unik mengenakan had pada saiz nilai yang boleh mereka simpan sebagai kunci. Untuk jenis data nvarchar, yang boleh menyimpan rentetan panjang berubah-ubah, panjang maksimum yang dibenarkan untuk kunci indeks ialah 450 aksara. Had ini adalah perlindungan daripada melebihi kekangan saiz baris 8000 bait yang dikenakan oleh SQL Server.
Untuk menyelesaikan ralat, kurangkan panjang maksimum lajur "kunci" kepada 450 aksara. Ini boleh dicapai dengan mengubah suai definisi jadual seperti berikut:
ALTER TABLE misc_info ALTER COLUMN key nvarchar(450) UNIQUE NOT NULL;
Sebagai alternatif, jika keperluan adalah untuk menyimpan rentetan lebih daripada 450 aksara, pertimbangkan untuk menggunakan jenis data varchar dan bukannya nvarchar. Varchar mempunyai had panjang maksimum 8000 aksara, memberikan lebih fleksibiliti untuk menyimpan kunci yang lebih panjang sambil mengekalkan kekangan indeks yang unik.
ALTER TABLE misc_info ALTER COLUMN key varchar(8000) UNIQUE NOT NULL;
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mencipta Indeks Unik pada Lajur nvarchar(maks) saya dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!