我正在开发一个使用MySQL数据库存储数据的程序。我有一张桌子(在这里简化):在MySQL中限制字段值?
+---------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+----------------+
| dataId | int(10) unsigned | NO | PRI | NULL | auto_increment |
| someNum | tinyint(4) | NO | | 0 | |
+---------+------------------+------+-----+---------+----------------+
现在,我用这样的查询更新表。
UPDATE table SET someNum=someNum+2 WHERE dataId=78225;
该ID和数量someNum
更改动态从代码。
现在,我想要做的是将someNum
的值限制在-3和3之间,特别是在那个UPDATE
中。这不是必需的,我的软件可以处理它在这个范围之外,但是数据会随着这个限制更清晰。如果someNum+2
将超过3,我只是想将其设置为3
数字MIN
/MAX
将使它容易:
UPDATE table SET someNum=MAX(-3,MIN(3,someNum+2)) WHERE dataId=78225;
我看了看文档here,但似乎有号码为MIN
/MAX
。 MIN
和MAX
被发现here,但他们似乎并不适合这一点。
什么是最好的方式(如果有的话)在MySQL中实现这样的限制(而不是调用MySQL的代码)?