如何限制SQL字段的最大值



我试图强制字段PRICE的值低于500,如果它是用现金支付的(PAYMENT="cash"(,这样就不可能在上面插入任何内容。

表格(SALES(是这样的:

ID(PK([INT]|日期[VARCHAR]|商店[VARCHAR]|价格[FLOAT]|付款[VARCHAR][

我几乎是SQL的新手,我读到有很多方法可以做到这一点,但我找不到任何关于它的东西;规则";到我的桌子?

我相信你想到的是CHECK CONTRAINTS

  • https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/constraint.html

CREATE TABLE sales (
payment   NVARCHAR2(32),
amount    FLOAT,
CONSTRAINT cash_limit CHECK ((payment <> 'CASH') OR (amount <= 500))
);

dbfiddle:https://dbfiddle.uk/?rdbms=oracle_21&fiddle=a1e94cdd5e762f8d7b1f8b18739cb5a0

最新更新