3

我的数据库中有一个字段,我不想超过 100。我可以在查询中添加一些内容以确保它没有吗?

我通常最终会这样做:

UPDATE table SET field = field + $x
UPDATE table SET field = 100 WHERE field > 100

这样的事情存在吗?

4

2 回答 2

4
UPDATE table 
  SET field = CASE WHEN field + $x <= 100
                     THEN field + $x
                     ELSE 100
              END ;

或者:

UPDATE table 
  SET field = LEAST(field + $x, 100) ;
于 2012-07-30T22:28:16.990 回答
0

触发器呢?就像是

CREATE TRIGGER tg_limit BEFORE UPDATE ON tbl
    FOR EACH ROW
    BEGIN
        IF NEW.fld > 100 THEN
            SET NEW.fld = 100;
        END IF;
    END
于 2012-07-30T22:36:48.593 回答