我试图强制字段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