2016-07-28 3 views
-2

Я пытаюсь добавить уникальное ограничение на 2 столбца в столбце DB2 - docType и title. Значения каждого столбца могут повторяться сами по себе. однако значения пар (docType, title) не должны повторяться.DB2 - уникальное ограничение для нескольких столбцов

я пытался до сих пор

ALTER TABLE externalfiles 
ADD CONSTRAINT logicalKey UNIQUE (doctype, title) 

и

alter table externalfiles add unique (doctype, title) 

, и получил следующее сообщение об ошибке в обоих:

операция не разрешена для кода причины "7" на столе " PIT.EXTERNALFILES ".. SQLCODE = -668, SQLSTATE = 57016, DRIVER = 4.21.29

Не разрешено ли это?

DB2 Unique Constraint over multiple Columns предлагает создавать индексы в качестве альтернативы этому. Еще не пробовал индексировать их, однако мне интересно, почему уникальное ограничение не работает.

TIA.

+1

Вы пытались найти код ошибки в руководстве? – mustaccio

ответ

0

Этот web search on db2 luw sqlstate 57016 возвращает ряд ссылок, которые предполагают, что предыдущий ALTER может потребовать выполнения REORG до того, как ADD CONSTRAINT будет выполнен.

Пожалуй, наиболее заметным было по следующей ссылке документ и фрагмент текста, описывающий Rc7 [видимо, SQLERRMC = 7]:

DB2 for Linux UNIX and Windows 9.7.0 ->Database fundamentals ->Messages ->SQL Messages ->SQL0500 - SQL0999 ->SQL0668N

... 7 • таблица находится в REORG состоянии ожидания. Это может произойти после инструкции ALTER TABLE, содержащей операцию REORG. ...

Смежные вопросы