Я хотел бы создать отложенный уникальный функциональный индекс в Oracle 10g.Могу ли я иметь отложенный уникальный функциональный индекс в Oracle?
Я знаю, как создать уникальный функциональный индекс:
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);
Я знаю, как создать откладываемые уникальный индекс:
alter table LIST_ITEM add constraint LIST_ITEM_ENTRY_NO_UNIQ
unique (LIST_KEY,ENTRY_NO) deferrable initially deferred;
Зная эти две вещи, я попытался это:
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;
Но я получаю ошибку «ORA-00904: недопустимый идентификатор». Либо у меня синтаксис неправильный, либо, возможно, Oracle не поддерживает отложенные функциональные индексы? Может ли кто-нибудь предоставить мне решение или окончательный ответ?
Ну, я попросил окончательного ответа, и, видимо, это все, даже если это не тот, на который я надеялся. ;) – Chris