ホームページ > データベース > mysql チュートリアル > データベースで「無効なインデックス キー列」エラーがスローされるのはなぜですか?それを修正するにはどうすればよいですか?

データベースで「無効なインデックス キー列」エラーがスローされるのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-18 15:32:11
オリジナル
842 人が閲覧しました

Why Does My Database Throw an

無効なインデックス キー列: エラーの理解と解決

エラー メッセージ「テーブル 'misc_info' の列 'key' は、 「インデックスのキー列として使用するには無効な型です」は、インデックスでキーとして使用されている列のデータ型に問題があることを示します。 索引。簡単に検索すると、インデックスの長さの制限が 450 文字であることがわかりますが、これだけではエラーの解決策にはなりません。

この場合、エラーはデータ型が「key」という名前の列に関係しています。 nvarchar(最大)。これを解決するには、キー列のデータ型をインデックス キーの有効な型に変更する必要があります。インデックス キーの一意の制約には、行あたり 8000 バイトの最大サイズ制限があり、最初の 900 バイトのみが使用されます。したがって、最大限の互換性を確保し、潜在的なエラーを回避するには、キー列のデータ型は最大 450 文字を許可する必要があります。

次の改訂された SQL ステートメントは、キー列のデータ型を変更することでエラーを解決します。 to nvarchar(450):

CREATE TABLE [misc_info] (
    [id] INTEGER PRIMARY KEY IDENTITY NOT NULL,
    [key] NVARCHAR(450) UNIQUE NOT NULL,
    [value] NVARCHAR(MAX) NOT NULL
);
ログイン後にコピー

キー列に nvarchar(450) を使用すると、問題が発生することなく一意のインデックスを作成できます。 「キー列の型が無効です」エラー。可能であれば、nvarchar の代わりに varchar を使用すると、キー列の長さを 900 文字に増やすことができる可能性があることに注意してください。

以上がデータベースで「無効なインデックス キー列」エラーがスローされるのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート