Ich möchte einen aufschiebbaren eindeutigen funktionalen Index in Oracle 10g erstellen.
Ich weiß, wie man einen eindeutigen funktionalen Index erstellt:
create unique index LIST_ITEM_ENTRY_NO_UNIQ
on LIST_ITEM (case status when 'cancel' then null else LIST_KEY end,
case status when 'cancel' then null else ENTRY_NO end);
Ich weiß, wie man einen aufschiebbaren eindeutigen Index erstellt:
alter table LIST_ITEM add constraint LIST_ITEM_ENTRY_NO_UNIQ
unique (LIST_KEY,ENTRY_NO) deferrable initially deferred;
Da ich diese beiden Dinge kannte, habe ich dies versucht:
alter table LIST_ITEM add constraint LIST_ITEM_ENTRY_NO_UNIQ
unique (case STATUS when 'cancel' then null else LIST_KEY end,
case STATUS when 'cancel' then null else ENTRY_NO end)
deferrable initially deferred;
Aber ich erhalte die Fehlermeldung "ORA-00904: Ungültiger Bezeichner". Entweder habe ich die Syntax falsch verstanden, oder vielleicht unterstützt Oracle keine aufschiebbaren funktionalen Indizes? Könnte mir jemand eine Lösung oder eine endgültige Antwort geben?