这是我的查询:
UPDATE users SET events = events - 1 WHERE id = 10
仅当 events
列的当前值为 1
或更大时,此查询才有效。否则它会抛出这个:
#1690 - BIGINT UNSIGNED value is out of range in '(
dbname
.users
.events
- 1)'
如何解决这个问题?我想将 0
值保留为 events
列的值,而不是引发错误。
注意到 events
列是 int(11) 无符号
。
最佳答案
where
子句怎么样?
UPDATE users
SET events = events - 1
WHERE id = 10 AND events > 0;
无论如何,你都不希望发生负面事件。
关于mysql - 当我将负数初始化为无符号列时,如何忽略抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173135/