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 に答える