という名前のテーブルがRoom
あり、列 (ID、タイプ、価格など) があります。
type
両方に制約を追加したいのですが、次のprice
ようにします。
- シングルの場合、価格は 50 を超えてはなりません。
- double (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