MySQL エラー: 長さのないキー仕様の BLOB/TEXT カラム
この記事では、一般的な MySQL エラー「BLOB/TEXT カラム 'message_id' がキーの長さのないキー仕様で使用されています。」に対処します。これは通常、テーブルの主キーを変更する場合 (たとえば、varchar(255)
から text
に変更する場合) に発生します。 根本的な原因は、一意制約または主キーで BLOB または TEXT カラムを使用する場合の MySQL のキー長要件です。
エラーを理解する
MySQL では、キーの長さが定義されていない可変長の BLOB または TEXT カラムに対して一意のキー制約を効率的に適用できないことが中心的な問題です。 長さがないと、データベースの一意性の検証が困難になります。
エラーの解決
いくつかのアプローチでこの問題を解決できます:
キーから BLOB/TEXT 列を削除します: 可能な場合、最も簡単な解決策は、主キーまたは一意のインデックス定義から TEXT
または BLOB
列を削除することです。
VARCHAR を使用する: TEXT
または BLOB
列を VARCHAR
に変更し、適切な長さ (最大 255 文字) を指定することを検討してください。 VARCHAR
は、主要な制約に対して優れたパフォーマンスを提供します。
代替主キー: 列の削除も変換もできない場合は、別のフィールドを主キーとして選択します。
(無効) 長さ:ALTER TABLE
の ALTER TABLE
または TEXT
列のキー長を指定して BLOB
を使用することはできますが、これは MySQL ではサポートされていません。
重要な注意事項
VARCHAR 長さ: MySQL による VARCHAR
への自動変換を防ぐため、SMALLTEXT
列の長さを 256 文字未満にしてください。これによりエラーが再トリガーされます。
その他の列タイプ: このエラーは TEXT
列と BLOB
列に限定されません。 すべての列のキーの長さが正しく指定されていることを再確認し、特に VARCHAR
の長さが 255 を超えていないことを確認してください。
以上がMySQL が「長さのないキー仕様の BLOB/TEXT カラム」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。