今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 。经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1)。后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题。 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制。
先看一下MySQL支持的整型数及大小,存储空间:
pe
Storage
Minimum Value
Maximum Value
存储大小
(Bytes)
(Signed/Unsigned)
(Sig
隐式转换[自动类型转换]:
两种类型要兼容,原类型值域要小于目标类型值域,可以简单的理解为由小转大。
public class Test
{
private void Start()
{
int a = 10;
float b = a;//int 类型隐式转换为 float 类型
}
}
显示转换[强制类型转换]:
两种类型要兼容,原类型值域要大于目标类型值域,可以简单的理解为由大转小。
【缺点】:1、数据溢出。2、精度丢失。
数值类型之间的转换。
public