Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Unique Constraint basierend auf dem Spaltenwert

Sie können einen eindeutigen funktionsbasierten Index erstellen

CREATE UNIQUE INDEX idx_dup_active
    ON <<table name>>( CASE WHEN is_active = 1
                            THEN question_no
                            ELSE NULL
                        END );

Dies nutzt die Tatsache aus, dass Oracle B-Tree-Indizes keine Daten speichern, bei denen die Blattblockdaten vollständig NULL wären.