超出第1行“contact_no”列的范围值

时间:2014-10-07 13:53:32

标签: mysql sql

我试图添加一个长度为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')

3 个答案:

答案 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'超出了它的大小。