【MySQL】Error 1264: out of range value for column

此问题是插入的整型数字超出了范围。

比如设置表格的数据类型:cust_fax integer(10) not null

当插入以下数字的时候会抛出标题所说的错误:
insert into database values ('3172978990');


其实数字 3172978990 已经超过了 2147483647所以会报错。

解决此错误,可以将数据类型更改为VARCHAR,以字符串的形式进行存储。当然类似电话、传真等等均应该以字符串的形式进行存储。

MySQL 整型对应的范围如下:

Type | Storage | Minimum Value|Maximum Value
-----|------|---- |
| (Bytes) | (Signed/Unsigned) |(Signed/Unsigned)
TINYINT | 1 | -128 |127
| | 0 |255
SMALLINT | 2 | -32768 |32767
| | 0 |65535
MEDIUMINT | 3 | -8388608 |8388607
| | 0 |16777215
INT | 4 | -2147483648 |2147483647
| | 0 |4294967295
BIGINT | 8 | -9223372036854775808 |9223372036854775807
| | 0 |18446744073709551615

参考

posted @ 2016-05-25 19:49  Chris*Chen  阅读(2768)  评论(0编辑  收藏  举报