我试图在DB2-- docType
列和title
列的2列上添加唯一约束。每列的值可以重复。但是,(docType
,title
)对的值不应重复。
到目前为止我试过了
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建议创建索引作为替代。 Haven尚未尝试将它们编入索引 - 但是,我想知道为什么独特的约束不起作用。
TIA。
答案 0 :(得分:0)
此web search on db2 luw sqlstate 57016返回一些链接,表明先前的ALTER可能要求在ADD约束生效之前执行REORG。
最值得注意的可能是以下文档链接和描述RC7的文本片段[显然是SQLERRMC = 7]:
... 7•表处于重组暂挂状态。这可能发生在 包含REORG建议操作的ALTER TABLE语句。 ...
答案 1 :(得分:0)
首先尝试通过以下方式重组表
call sysproc.admin_cmd ('reorg table <TABLE_NAME>');
再试一次以创建唯一索引。应该可以。