ホームページ > データベース > mysql チュートリアル > MySQL が「キーの長さのないキー仕様で使用されている BLOB/TEXT 列」エラーをスローするのはなぜですか?

MySQL が「キーの長さのないキー仕様で使用されている BLOB/TEXT 列」エラーをスローするのはなぜですか?

Mary-Kate Olsen
リリース: 2025-01-19 23:32:15
オリジナル
1003 人が閲覧しました

Why Does MySQL Throw a

MySQL データベース エラー: キー仕様でキーの長さを指定せずに BLOB/TEXT カラムを使用している

「キーの長さのないキー仕様での BLOB/TEXT カラム 'message_id' の使用」というエラーが発生した場合、MySQL が BLOB または TEXT カラム全体の長さにインデックスを作成できないことが原因です。これらの列には、一意性を確保するために指定されたキーの長さが必要です。

エラーの理由

このエラーは主に、TEXT 型または BLOB 型 (TINYBLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、MEDIUMTEXT、LONGTEXT を含む) が主キーとして指定されている場合、またはキーの長さを指定せずにインデックス作成に使用されている場合に発生します。

解決策

この問題を解決するには、いくつかの方法があります:

  • キーから TEXT/BLOB 列を削除: 別のインデックス可能な列に置き換えます。
  • 別のフィールドに主キーを設定します: 適切なフィールドが存在する場合は、代わりにそれを主キーとして使用します。
  • 列の長さを制限する: 列を VARCHAR(n) に変換し、最大長を指定します。 VARCHAR のデフォルトの長さは最大 255 文字です。

その他の注意事項

  • VARCHAR の長さが正しくありません: VARCHAR カラムの長さが 255 文字を超えていないことを確認してください。そうでない場合は、MySQL が TEXT 型に変換し、同じエラーが発生します。
  • 既存の制約: TEXT 列または BLOB 列が既存の一意の制約またはインデックスの一部である場合、列の型を変更するときに問題が発生する可能性があります。

参考

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

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