Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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_Sqldatatypes - Fatal编程技术网

用于长数字的MySQL字段类型

用于长数字的MySQL字段类型,mysql,sqldatatypes,Mysql,Sqldatatypes,如果我在MySQL表中将一个字段设置为INT,那么我在其中存储的数字将删除所有零。 例如,如果我有一个像100007431431552这样的Id,它最终将保存为17431431552。 字段选项为长度为32的INT。那有什么问题 有什么建议吗?谢谢。100007431431552对于INT来说太大了 如果在严格模式下运行,则会出现错误(数据截断:列“id”的值超出范围) 不幸的是,MySQL的默认行为是避免任何错误消息,并尝试执行其他操作—代价是在不告诉您的情况下丢失数据(这就是示例中存储的17

如果我在MySQL表中将一个字段设置为
INT
,那么我在其中存储的数字将删除所有零。
例如,如果我有一个像100007431431552这样的Id,它最终将保存为17431431552。
字段选项为长度为32的
INT
。那有什么问题


有什么建议吗?谢谢。

100007431431552
对于
INT
来说太大了

如果在严格模式下运行,则会出现错误(
数据截断:列“id”的值超出范围

不幸的是,MySQL的默认行为是避免任何错误消息,并尝试执行其他操作—代价是在不告诉您的情况下丢失数据(这就是示例中存储的
17431431552

对于此类值,需要使用
bigint


SQLFIDLE:

100007431431552
对于
INT
来说太大

如果在严格模式下运行,则会出现错误(
数据截断:列“id”的值超出范围

不幸的是,MySQL的默认行为是避免任何错误消息,并尝试执行其他操作—代价是在不告诉您的情况下丢失数据(这就是示例中存储的
17431431552

对于此类值,需要使用
bigint


SQLFiddle:

MySQL手册中说INT类型的最大值是2147483647(有符号)和4294967295(无符号)。BIGINT类型的最大值为9223372036854775807(有符号)和18446744073709551615(无符号)。因此您应该使用BIGINT列类型。

MySQL手册中说INT类型的最大值是2147483647(有符号)和4294967295(无符号)。BIGINT类型的最大值为9223372036854775807(有符号)和18446744073709551615(无符号)。因此,您应该使用BIGINT列类型。

from

您不能用
INT TYPE
选择这么大的数字

来自


您不能用
INT TYPE
选择这么大的数字

看起来您正在存储FB ID,请改用
varchar(20)
。只有0007的值会转换为7的整数,删除0后,10007将保留为10007;)好的,我看到了INT存储2147483647的最大值和-2147483647的最小值的问题。我现在有“BIGINT”,但对于优化,我认为可以优化更多的速度。因此,考虑到速度,最好将这些ID存储在VARCHAR 20 als BIGINT中?看起来您正在存储FB ID,请改用
VARCHAR(20)
。只有0007的值才会转换为7,去掉0,10007将保持10007;)好的,我看到了INT存储2147483647的最大值和-2147483647的最小值的问题。我现在有“BIGINT”,但对于优化,我认为可以优化更多的速度。所以,考虑到速度,最好将这些ID存储在VARCHAR 20 als BIGINT中?谢谢你们,这将帮助我@onbids:您应该将MySQL安装配置为以严格模式(和ANSI模式)运行,以禁用一些愚蠢的默认行为(例如截断数据而不是抛出错误)。详见手册:谢谢大家,这对我有帮助@onbids:您应该将MySQL安装配置为以严格模式(和ANSI模式)运行,以禁用一些愚蠢的默认行为(例如截断数据而不是抛出错误)。详见手册:谢谢大家,这对我有帮助!谢谢你们,这对我有帮助!谢谢你们,这对我有帮助!谢谢你们,这对我有帮助!
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