2016-07-28 128 views
-2

我想在2列上DB2--添加唯一約束docType柱和title列。每列的值可以自行重複。然而,值(docTypetitle)對不應重複。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 = 29年4月21日

這不是任何允許?

DB2 Unique Constraint over multiple Columns建議創建索引的替代方式。還沒有嘗試索引他們 - 但是,我想知道爲什麼獨特的約束不起作用。

TIA。

+1

您是否嘗試過查找手冊中的錯誤代碼? – mustaccio

回答

0

這個web search on db2 luw sqlstate 57016返回一些鏈接,表明先前的ALTER可能要求在添加約束可以生效之前執行REORG。

也許最值得注意的是文本的下列文檔鏈接和摘要描述RC7 [明顯的sqlerrmc = 7]:

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

... 7•表處於掛起狀態REORG。這可能發生在包含REORG推薦的操作的ALTER TABLE語句的 之後。 ...