Уникальные индексы в DB2 - PullRequest
       9

Уникальные индексы в DB2

1 голос
/ 26 февраля 2011

Я переношу некоторые запросы SQL из Oracle в DB2 UDB 8.

Вот запрос SQL:

create unique index ACT_UNIQ_RU_BUS_KEY on ACT_RU_EXECUTION
(case when BUSINESS_KEY_ is null then null else PROC_DEF_ID_ end,
case when BUSINESS_KEY_ is null then null else BUSINESS_KEY_ end);

Кто-нибудь знает, что может быть эквивалентным SQL в DB2 UDB 8.x?

К вашему сведению: это SQL-запрос, который я создаю для инструмента Activiti BPM.

1 Ответ

1 голос
/ 26 февраля 2011

Это кажется сложным способом построения индекса, и третья строка выглядит удивительно, как будто она эквивалентна записи просто BUSINESS_KEY_. Предполагая, что PROC_DEF_ID_ и BUSINESS_KEY_ являются именами столбцов, тогда кажется, что индекс для этих двух столбцов в этой последовательности, с учетом того, что если BUSINESS_KEY_ равен нулю, то первый столбец в индексе также обрабатывается как нулевой .

Насколько я знаю, в DB2 нет способа сделать это - по крайней мере, не в версиях 8.x. Страница справочника DB2 LUW 9.7 для CREATE INDEX не содержит ничего эквивалентного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...