PL / SQLを使用して、比率に基づいて2つの異なるセットへのサンプルの分布を定義するconfigを含むテーブルを作成しています。これには、sample_type、set_1、set_2、ratio(set_1に送られるサンプルのパーセンテージ)の4つの列があります。たとえば、行が('walk'、'left'、'right'、50)の場合、タイプが'walk'のサンプルの場合、それらの50%が'left'になり、残りが'right'になります。
比率のみが100の場合、つまりサンプルの100%がset_1に送られる場合に、set_2がnullになるようにするチェック制約を追加したいと思います。私は次のようなことを試みます:
ALTER TABLE CONFIG
ADD CONSTRAINT CHK
CHECK (
NOT EXISTS (SELECT 1 FROM CONFIG WHERE SET_2 IS NULL AND RATIO <> 0)
)
ただし、Oracleではサブクエリのチェックは許可されていません。それで、この状況にチェック制約を追加する別の方法はありますか?
ありがとうございました