MYSQL数据库设计注意事项
时间:2010-08-27 来源:xiaokaizi
1,对UNSIGNED数据列做减法运算的返回值仍将是一个UNSIGNED整数,而这可能导致虚假或让人困惑的结果。
( 他始终是一个大于等于0的数值)
2, BIGINT[(M)] [UNSIGNED] [ZEROFILL]
( 他始终是一个大于等于0的数值)
2, BIGINT[(M)] [UNSIGNED] [ZEROFILL]
大整数。带符号的范围是-9223372036854775808到9223372036854775807。
无符号的范围是0到 18446744073709551615。
应清楚BIGINT列的下述内容:
使用带符号的BIGINT或DOUBLE值进行所有算法,因此除了位函数,不应使用大于 9223372036854775807(63位)的无符号的大整数! 如果这样做,结果中的最后几位可能出错,
这是由于将BIGINT值转换为DOUBLE进行四舍五入时造成的错误。
MySQL可以在以下情况下处理BIGINT:
§ 当使用整数在一个BIGINT列保存大的无符号的值时。
§ 在MIN(col_name)或MAX(col_name)中,其中col_name指BIGINT列。
§ 使用操作符(+,-,*等等)并且两个操作数均为整数时。
o 总是可以使用一个字符串在BIGINT列中保存严格整数值。在这种情况下,MySQL执行字符串-数字转换,其间不存在双精度表示。
o 当两个操作数均为整数值时,-、+和* 操作符使用BIGINT算法。这说明如果乘两个大整数(或来自返回整数的函数),当结果大于9223372036854775807时,会得到意想不到的结果。
相关阅读 更多 +