Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果太长,Mysql将转换整数_Mysql_Int_Type Conversion - Fatal编程技术网

如果太长,Mysql将转换整数

如果太长,Mysql将转换整数,mysql,int,type-conversion,Mysql,Int,Type Conversion,我试图将数字25173545009(11位)插入Mysql数据库中的INT(10)列。奇怪的是,它不会抛出错误,因为它太长了,但它会将数字转换为4294967295,并将其插入到列中。为什么会这样?它如何将25173545009转换为4294967295?4294967295是可以存储在无符号32位(整数)中的最大值,因为该数字太大,它基本上选择了它可以选择的最大数字。您应该指定4294967295是可以存储在无符号整数中的最大值。2147483648是可以用32位有符号整数表示的最大值。@ju

我试图将数字
25173545009
(11位)插入Mysql数据库中的
INT(10)
列。奇怪的是,它不会抛出错误,因为它太长了,但它会将数字转换为
4294967295
,并将其插入到列中。为什么会这样?它如何将
25173545009
转换为
4294967295

4294967295是可以存储在无符号32位(整数)中的最大值,因为该数字太大,它基本上选择了它可以选择的最大数字。

您应该指定4294967295是可以存储在无符号整数中的最大值。2147483648是可以用32位有符号整数表示的最大值。@jurgemaister您是正确的,谢谢您的更正。请注意:
INT
始终存储在4个字节上,它可以存储上面显示的最大值,顺便说一句,这些值有10位十进制数字。它与
INT(10)
中的
10
无关。可以将列声明为
INT(1)
,它仍然可以包含最多2^31(有符号)或2^32(无符号)的数字。