MySQL整型数据溢出的解决方法

这篇文章主要介绍了MySQL整型数据溢出的解决方法,本文出现整型溢出的mysql版本是5.1,5.1下整型溢出不会报错,而会变成负数,需要的朋友可以参考下

今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 。经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1)。后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题。 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制。

先看一下MySQL支持的整型数及大小,存储空间:

peStorageMinimum ValueMaximum Value存储大小
 (Bytes)(Signed/Unsigned)(Signed/Unsigned)byte
TINYINT1-1281271 byte
  0255 
SMALLINT2-32768327672 bytes
  065535 
MEDIUMINT3-838860883886073 bytes
  016777215 
INT4-214748364821474836474 bytes
  04294967295 
BIGINT8-922337203685477580892233720368547758078 bytes
  018446744073709551615 

另外请记着mysql的数据处理会转成bigint处理,所以这里就用bigint几个测试:

复制代码 代码如下:

SELECT CAST(0 AS UNSIGNED) - 1;

SELECT 9223372036854775807 + 1;

以上就是MySQL整型数据溢出的解决方法的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 数据库