mysql中设置bigint(1)为什么还能保存13位的大整数

来源:百度知道 编辑:UC知道 时间:2024/06/30 09:21:44
mysql 中比如设置字段
id是bigint(1) 设置长度为1
但为什么能保存这么大的整数呢?
在线等待...

bigint类型就包含了长度,指定的长度只是显示宽度,不影响存储。

M 指出最大的显示尺寸。最大的显示尺寸长度为 255。
D 适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为 30,但不应大于M-2。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一个大的整数。有符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。 你应该知道的有关BIGINT列的一些事情:
BIGINT或DOUBLE值来完成的,因此你不应该使用大于9223372036854775807(63 bits) 的无符号大整数,除了位函数之外!如果你这样做了,结果中的某些大数字可能会出错,因为将BIGINT转换成DOUBLE时产生了舍入错误。MySQL 4.0 在下列情况下可以处理BIGINT:
在一个BIGINT列中使用整数存储一个大的无符号值。
在MIN(big_int_column)和MAX(big_int_column)中。
当两个操作数都是整数时使用操作符 (+、-、*、等)。
通常你可以在一个BIGINT列中以字符串方式存储的一个精确的整数。在这种情况下,MySQL 将执行一个字符串到数字的转换,包括无 intermediate 的双精度表示法。
当两个参数均是整数值时,“-”、“+”和“*”将使用BIGINT运算!这就意味着,如果两个大整数的乘积(或函数的结果返回整数)的结果大于9223372036854775807时,你可能会得到意想不到的结果。