mysql - 当我将负数初始化为无符号列时,如何忽略抛出错误?

标签 mysql sql

这是我的查询:

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/

相关文章:

mysql - 在mysql中创建日期为dd/mm/yyyy格式

mysql - 哪个工具可以对多个具有相同结构的mysql数据库进行相同的查询?

php - 使用 PHP similar_text 和 UPDATE 合并表

mysql - 如何在 MySql 中使用 COALESCE 来合并数据

php - SQL 语句(内部连接?)

javascript - 从 HTML 表单将多个值插入到同一数据库列

mysql - 将一对多连接响应转换为 Node js中的对象

mysql - 如果mysql中不存在数据,如何添加总计为0的月份名称?

SQL 查询 - 将结果连接到一个字符串中

MySQL : trigger to capitalize first letter of each word