Ich habe eine Situation, in der ich eine eindeutige Einschränkung für eine Spalte [Attribut] in Abhängigkeit von einem anderen Spaltenwert erzwingen muss.Bedingte eindeutige Integritätsbedingung in Oracle DB
So zum Beispiel habe ich eine Tabelle wie Tabelle (ID, EID, Name isDeleted)
isDeleted nur einen Wert null oder 'y' (aktiv oder gelöscht) haben kann, und ich will ein erstellen eindeutige Einschränkung für EID, ISDeleted nur wenn ISDeleted = null, da es mir egal ist, wenn es mehrere gelöschte Datensätze mit der gleichen ID gibt. Bitte beachten Sie, dass die EID einen Nullwert haben kann.
Ich verwende Oracle DB dafür.
Was wird 'sonst null' tun? Wird es einen Nullwert einfügen oder doppelte Datensätze einfügen? – D3V
@SantoshPingale - Da Oracle-Indizes NULL-Werte nicht indizieren, schließt der 'ELSE NULL' diese Zeilen aus dem Index aus, wodurch Duplikate zulässig sind. –