我正在開發一個使用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的代碼)?