我的数据库中有一个字段,我不想超过100.我可以添加查询中的某些内容以确保它没有吗?
我通常最终会这样做:
UPDATE table SET field = field + $x
UPDATE table SET field = 100 WHERE field > 100
这样的事情是否存在?
答案 0 :(得分:4)
UPDATE table
SET field = CASE WHEN field + $x <= 100
THEN field + $x
ELSE 100
END ;
或:
UPDATE table
SET field = LEAST(field + $x, 100) ;
答案 1 :(得分: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