1048: Column 'x' cannot be null(列は NULL にできない)
MySQL意味
NOT NULL として定義された列に NULL を挿入しようとした、またはその列を NULL に設定しようとした。必須フィールドを空にすることはできない。
原因
INSERT で必須列に値が指定されていない、UPDATE で列を NULL に設定した、列に DEFAULT がない、アプリケーション/副クエリから空の値が渡された、厳格 SQL モードでは空の値が暗黙に補完されない。
対処方法
必須列に有効な値を指定する。列に適切なデフォルトを定義する: ALTER TABLE my_table MODIFY my_column INT NOT NULL DEFAULT 0; ルールが不要なら NULL を許可する: ALTER TABLE my_table MODIFY my_column INT NULL; 空の値は送信前にアプリケーションで検証する。
同じデータベースの他の項目
- 1264Out of range value for column(列の範囲外の値)
- 1052Column 'x' in field list is ambiguous(フィールドリストの列が曖昧)
- 1136Column count doesn't match value count(列数と値の数が一致しない)
- 1292Incorrect datetime value / truncated incorrect value(日時の値が不正 / 不正な値の切詰め)
- 1406Data too long for column(列に対してデータが長すぎる)
- 1071Specified key was too long; max key length is 767 bytes(キーが長すぎる)
- 1050Table already exists(テーブルがすでに存在する)