DBAtlas · データベース運用アトラス

1366: Incorrect string/integer value for column(列に対する文字列/整数値が不正)

MySQL

意味

列の型または文字セットと互換性のない値が列に挿入された。通常は文字エンコーディングまたは型の不一致が原因。

原因

latin1 列への 4 バイトの絵文字/文字 (utf8mb4) の書き込み、数値列への非数値テキストの入力、誤った接続文字セット、または想定と異なる型の値の送信。

対処方法

文字の問題には、列/テーブルを utf8mb4 に変換する: ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci、さらに接続文字セットを utf8mb4 に設定する。数値フィールドはアプリケーションで型を検証する。サーバーは厳格 SQL モード (STRICT) で動作している点に注意する。根本原因はデータの型/エンコーディングにある。

DBAtlas で開く →

同じデータベースの他の項目