関数ベースのインデックスを使用する:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracleは、完全にnullではないキーのみにインデックスを付けます。ここでのCASE式により、すべての「NO」値がnullに変更され、インデックスが付けられなくなります。
関数ベースのインデックスを使用する:
create unique index only_one_yes on mytable
(case when col='YES' then 'YES' end);
Oracleは、完全にnullではないキーのみにインデックスを付けます。ここでのCASE式により、すべての「NO」値がnullに変更され、インデックスが付けられなくなります。