1048: Column 'x' cannot be null(列 'x' 不能为 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(字段列表中的列 'x' 不明确)
- 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(指定的键过长;最大键长度为 767 字节)
- 1050Table already exists(表已存在)