我试图添加一个长度为11的数字但是当我在数据库中输入它时却不能。如果我尝试添加一个长度为10的数字,它可以。
这是错误:
ERROR 1264: 1264: Out of range value for column 'contact_no' at row 1
SQL Statement:
INSERT INTO `mcs`.`new_table` (`id`, `contact_no`) VALUES ('1', '12345678901')
答案 0 :(得分:4)
不清楚你在问什么问题。
为什么会返回此错误?
可能,contact_no
列声明的数据类型为INT
,一个32位整数,并且您尝试分配的值大于支持的最大值。
带符号的32位整数的最大值为2,147,483,647。 (该十进制值为2 ^ 31-1。对于无符号的32位整数,最大值为2 ^ 32。)
其他一些问题没有被问及
如果需要存储大于INT数据类型支持的最大值,则可以将列定义为不同的数据类型。
例如,对于无符号,BIGINT给出的最大值为2 ^ 63-1。
如果您最多需要12个十进制数字,则可以使用DECIMAL(12)
数据类型。
答案 1 :(得分:1)
将contact_no
的数据类型更改为BIGINT
检查MYSQL official website处不同数据类型的范围
我个人建议您使用varchar,因为您不需要将联系号码与任何字段进行比较。
答案 2 :(得分:0)
请检查contact_no列的数据类型。 '12345678901'超出了它的大小。