ホームページ > データベース > mysql チュートリアル > MySQL の「キーの長さのないキー仕様で BLOB/TEXT カラムが使用されています」エラーを解決するにはどうすればよいですか?

MySQL の「キーの長さのないキー仕様で BLOB/TEXT カラムが使用されています」エラーを解決するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-19 23:36:10
オリジナル
562 人が閲覧しました

How to Resolve MySQL's

MySQL の BLOB/TEXT キー仕様エラーのトラブルシューティング

BLOB または TEXT カラムを含む MySQL テーブルで主キーまたはインデックスを定義すると、次のエラーが発生することがよくあります:

<code>BLOB/TEXT column 'message_id' used in key specification without a key length</code>
ログイン後にコピー

このエラーは、MySQL インデックスには固定長のデータ型が必要であるために発生します。 BLOB 列と TEXT 列は可変長であるため、インデックス サイズを決定するためにキーの長さの指定が必要です。 ただし、BLOB/TEXT のキー長を直接指定することはサポートされていません。

解決戦略:

いくつかのアプローチでこの制限に対処できます。

  • キー/インデックスから BLOB/TEXT を除外する: 最も簡単な解決策は、主キーまたはインデックス定義から BLOB または TEXT 列を削除することです。
  • VARCHAR 列の使用: 最大長を指定して、BLOB/TEXT を VARCHAR 列に置き換えます。 重要なのは、キーと互換性のない SMALLTEXT への自動変換を避けるために、この長さを 256 文字未満に保つことです。
  • 複合キーの使用: 単一の VARCHAR の容量を超える一意の識別子の場合は、複数の列を使用して複合キーを作成します。

さらなる考慮事項:

「キー長のないキー指定」エラーは、BLOB/TEXT 列が直接関与していなくても発生する可能性があります。 これは、VARCHAR キーの長さが 255 文字を超えると発生し、SMALLTEXT への暗黙的な変換がトリガーされます。

これを回避するには、キーで使用されるすべての VARCHAR 列の最大長が 255 文字未満であることを確認してください。

以上がMySQL の「キーの長さのないキー仕様で BLOB/TEXT カラムが使用されています」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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