【问题标题】:How can I ignore throwing error when I initialize a negative number to a unsigned column?将负数初始化为无符号列时,如何忽略抛出错误?
【发布时间】:2016-12-15 20:51:48
【问题描述】:

这是我的查询:

UPDATE users SET events = events - 1 WHERE id = 10

此查询仅在events 列的当前值为1 或更大时有效。否则它会抛出这个:

#1690 - BIGINT UNSIGNED 值超出 '(dbname.users.events - 1)' 的范围

我该如何解决这个问题?我想将0 的值保留为events 列的值,而不是抛出错误。

注意到events 列是int(11) unsigned

【问题讨论】:

  • WHERE id = 10 AND events >= 1?

标签: mysql sql


【解决方案1】:

where 子句怎么样?

UPDATE users
    SET events = events - 1
    WHERE id = 10 AND events > 0;

反正你也不想要负面事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2013-04-25
    • 2015-11-26
    • 2018-04-22
    • 2021-08-15
    • 1970-01-01
    • 2014-06-01
    相关资源
    最近更新 更多