ホームページ > データベース > mysql チュートリアル > MySQL エラー 1406 を解決する方法: データが列に対して長すぎますか?

MySQL エラー 1406 を解決する方法: データが列に対して長すぎますか?

Mary-Kate Olsen
リリース: 2025-01-04 05:06:39
オリジナル
883 人が閲覧しました

How to Solve MySQL Error 1406: Data Too Long for Column?

MySQL エラー: "1406. データが列に対して長すぎます"

列のデータ長が定義された幅を超える 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 サイトの他の関連記事を参照してください。

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