sql报错 Out of range value for column ‘**‘ at row

sql语句报错:Out of range value,一般是超出了数值范围。

我在数据库中定义的字段为:

    ADD COLUMN `score` tinyint(3) NOT NULL DEFAULT '0' COMMENT '得分'

但是因为分数有时计算后的负值超出-128,所以就会报错。所以如果得分字段定义上直接使用int类型,存储长度默认就好了

MODIFY COLUMN `score` int NOT NULL DEFAULT 0 COMMENT '得分' 

这里对int类型进行一个详细说明:
在这里插入图片描述
tinyint(1) 和 tinyint(3) 中的1和3并不表示存储长度,只有字段指定zerofill才有效果
例如:tinyint(3),实际值是1,如果列指定了zerofill,查询结果就是001,左边用0来填充。