1264: Out of range value for column(列的值超出范围)
MySQL含义
向数值或日期列插入了超出类型允许范围的值。该错误在严格 SQL 模式下引发。
原因
超出 TINYINT/INT 等类型的上限(如向 TINYINT 写入 200,或向 UNSIGNED 列写入负值)、日期/数字溢出,或发送的值大于预期。
解决方法
根据需要加宽列类型(如用 INT 代替 TINYINT,用 BIGINT 代替 INT)或修正符号(SIGNED/UNSIGNED)。在应用中校验取值范围。即使希望静默截断(不推荐),也应使数据与类型兼容,而不是从 sql_mode 中移除 STRICT。
同一数据库的其他条目
- 1452Cannot add or update a child row: a foreign key constraint fails(无法添加或更新子行:外键约束失败)
- 1366Incorrect string/integer value for column(列的字符串/整数值不正确)
- 1044Access denied for user to database(用户对数据库的访问被拒绝)
- 1052Column 'x' in field list is ambiguous(字段列表中的列 'x' 不明确)
- 1136Column count doesn't match value count(列数与值数不匹配)
- 1048Column 'x' cannot be null(列 'x' 不能为 null)
- 1292Incorrect datetime value / truncated incorrect value(日期时间值不正确 / 截断了不正确的值)