ホームページ >データベース >mysql チュートリアル >一意のインデックスが「無効なキー列タイプ」で失敗するのはなぜですか?

一意のインデックスが「無効なキー列タイプ」で失敗するのはなぜですか?

DDD
DDDオリジナル
2024-12-27 02:25:13252ブラウズ

Why is my Unique Index Failing with

データベース エラーへの対処: インデックスのキー列の型が無効です

テーブルに一意のインデックスを作成するときに、「列 '[キー]'」というエラーが発生する場合があります。テーブル '[テーブル]' は、インデックスのキー列として使用するには無効なタイプです。」このエラーは通常、インデックスに指定された列のデータ型が大きすぎる場合に発生します。

問題の解決

このエラーの一般的な原因は、インデックス キーの最大長が超過していることです。許容限界。 Microsoft SQL Server では、インデックス キーの最大長は 900 バイトです。

この問題を解決するには、キー列の最大長を減らすことを検討してください。あなたの場合、キー列は nvarchar(max) として定義されており、長さは無制限です。インデックス キーの場合は、nvarchar(450) などの制限されたデータ型を使用することをお勧めします。これにより、インデックス キーの長さが確実に制限内に収まるようになります。

ここでは、キー列が 450 に制限されている更新されたテーブル定義を示します。文字:

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

この調整を行うことで、キーが確実に列がインデックス キーのサイズ要件を満たしているため、エラーが解決されています。

以上が一意のインデックスが「無効なキー列タイプ」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。