此问题是插入的整型数字超出了范围。
比如设置表格的数据类型:cust_fax integer(10) not null
当插入以下数字的时候会抛出标题所说的错误:insert into database values ('3172978990');
其实数字 3172978990
已经超过了 2147483647
所以会报错。
解决此错误,可以将数据类型更改为VARCHAR
,以字符串的形式进行存储。当然类似电话、传真等等均应该以字符串的形式进行存储。
MySQL 整型对应的范围如下:
Type | Storage | Minimum Value |
---|---|---|
(Bytes) | (Signed/Unsigned) | (Signed/Unsigned) |
TINYINT | 1 | -128 |
0 | 255 | |
SMALLINT | 2 | -32768 |
0 | 65535 | |
MEDIUMINT | 3 | -8388608 |
0 | 16777215 | |
INT | 4 | -2147483648 |
0 | 4294967295 | |
BIGINT | 8 | -9223372036854775808 |
0 | 18446744073709551615 |