mysql注释符号|解决mysql无符号整型自减运算时溢出的问题

更新时间:2020-04-02    来源:mysql教程    手机版     字体:

【www.bbyears.com--mysql教程】

在mysql中给一个无符号整型字段做自减运算时,如果结果小于0,将直接溢出,并没有报错。
正常情况应该会报一个BIGINT UNSIGNED value is out of range的错误,至少我本地的mysql是这样的,但线上的mysql中却能正常执行,然后字段的值变成了四十多亿4294967295。。。

可能是由于mysql的配置问题导致的,但我没找到如何配置,也没有权限配置。所以只能从程序上下手。
程序生成的sql本来是类似这样的:

update table set field=field-1 where xxx=xxx;

自减1,如果要判断结果的话,还得去查一下库吧??
所以我使用了这种办法。

把field=field-1改成:


field=convert(field+(-1), signed)

这样就解决了,在相减时如果值是负值,会直接是0。

 

本文来源:http://www.bbyears.com/shujuku/91483.html

热门标签

更多>>

本类排行