优选主流主机商
任何主机均需规范使用

解决MySQL int字段无法保存-1值导致的报错问题:详细解析与最佳实践

MySQL中的INT是 整数数据类型,它是一个整数。 它允许数字不带小数部分(没有小数部分)。例如,1、5,-10是整数类型,而1.5、5/7不能是整数。请注意,整数值可以是 正,负或零

整数类型范围

下表说明了每种整数类型的特征,包括每种整数类型所需的存储空间和范围(最小值和最大值)。

类型 字节 最小值 最大值
TINIINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -9223372036854775808 9223372036854775807

我们将要使用的数据类型的选择取决于我们将要存储的数据类型。例如,TINYINT数据类型足以满足一个班级最多可容纳35人的学生人数。但是,如果需要在一个国家/地区存储每个人的联系电话,则必须选择INT或BIGINT数据类型。
只要有可能,最好选择最小的数据类型,因为它会最小化数据库的大小

unsigned的用法

unsigned 是mysql自定义的类型,表示无符号数值即非负数。signed为整型默认属性。

在mysql数据库中,unsigned表面含义是 ‘无符号’的意思,unsigned既为非负数,用此类型可以增加数据长度.

例如,如果 int最大是2147683647,那 tint unsigned 最大 就可以到 2147683647 * 2;以tinyint为例,它的取值范围-128-127,加不加signed都默认此范围。加上unsigned表示范围0-255,其实相当于把负数那部分加到正数上。例如身高、体重或者年龄等字段一般不会为负数,此时就可以设置一个 UNSIGNED ,不允许负数插入。

与unsigned类似的还有binary,unsigned 属性只针对整型,而binary属性只用于char 和varchar。

保存-1值报错解决办法

下你定义数据类型的时候,是不是加了unsigned,如果是int(10) unsigned就不能使用负数了只能使用正数。
phpMyAdmin的unsigned在哪里?表机构中的属性可以看到unsigned。
navicat的unsigned在哪里?自动增长列下面那个选项就是unsigned。

未经允许不得转载:搬瓦工中文网 » 解决MySQL int字段无法保存-1值导致的报错问题:详细解析与最佳实践