列のデータ長が定義された幅を超える MySQL テーブルにデータを挿入しようとすると、 「エラー コード: 1406。データが列に対して長すぎます」というエラーが発生します。
これを考慮してください。例:
CREATE TABLE `TEST` ( `idTEST` INT NOT NULL , `TESTcol` VARCHAR(45) NULL , PRIMARY KEY (`idTEST`) );
指定された列の長さ内のデータの挿入は期待どおりに機能します:
INSERT INTO TEST VALUES ( 1, 'Vikas' );
ただし、最大列長を超えるデータを挿入しようとすると、エラーが発生します:
INSERT INTO TEST VALUES ( 2, 'Vikas Kumar Gupta Kratika Shukla Kritika Shukla' );
これは、MySQL が指定されたカラムより長い挿入値を切り捨てるために発生します。 width.
解決策:
この問題を解決するには、MySQL の厳密モードを一時的に無効にします:
my.ini (Windows)または my.cnf (Unix) ファイル:
「STRICT_TRANS_TABLES」を削除するための「sql-mode」設定:
# Set the SQL mode to strict sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
データベース管理ツールでの SQL クエリの使用:
次のクエリを実行して、グローバル SQL モードを空にします:
SET @@global.sql_mode= '';
厳密モードを無効にすると、次のように挿入できます。列の長さを超えるデータ。ただし、これによりデータの切り捨てや不整合が発生する可能性があるため、このソリューションは慎重に使用してください。
以上がMySQL エラー 1406 を解決する方法: データが列に対して長すぎますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。