我有一个表叫Room
,它有列(ID,型号,价格...等)检查约束列之间值检查
我要添加约束双方type
和price
这样的:
- 如果单个(或多个),那么价格不应该大于50,
- 如果双(d),则价格不应该大于100,和
- 如果家族(f)中,然后价格应该不会更大比150
我试图像这样添加它,但它给我一个错误。不知道我应该怎么写这样的:
ALTER TABLE ROOM
ADD (CONSTRAINT CHK_PRICE CHECK (
(TYPE='S' AND PRICE <= 50) AND
(TYPE='D' AND PRICE <=100) AND
(TYPE='F' AND PRICE <= 150)));
收到的错误是:
SQL Error: ORA-02293: cannot validate (xxxx.CHK_PRICE) - check
constraint violated
02293. 00000 - "cannot validate (%s.%s) - check constraint violated"
*Cause: an alter table operation tried to validate a check constraint to
populated table that had nocomplying values.
*Action: Obvious
nop ....所有价格都低于他们的要求值 – user1672735
@ user1672735 - 你怎么知道的?该错误清楚地表明'*原因:一个alter table操作试图验证一个检查约束,以填充表中有不合适的值。 – Annjawn