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

时间:2020-04-02  来源: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。

 

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

http://m.bbyears.com/shujuku/91483.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新