正如你们许多人所知,在DB2中你可以说
ALTER TABLE EMPLOYEE
ADD CONSTRAINT NEWID UNIQUE(EMPNO,HIREDATE)
你能说点什么吗
ALTER TABLE EMPLOYEE
ADD CONSTRAINT NEWID UNIQUE(EMPNO,HIREDATE,ACTIVE = 'Y')
如果行处于活动状态,我只关心约束。我看起来你可以在MSSQL中做到这一点但不是DB2 ...... Err,抱怨道。
答案 0 :(得分:1)
对于OP来说可能为时已晚,但我遇到了类似的问题并在此处找到了解决方案:Emulating partial indexes in DB2
在列empno
上创建唯一索引的代码可能如下所示:
CREATE UNIQUE INDEX my_index ON employee (CASE WHEN active = 'Y' THEN empno ELSE NULL END) EXCLUDE NULL KEYS;
并且相应地对于empno
和hiredate
列:
CREATE UNIQUE INDEX my_index ON employee (CASE WHEN active = 'Y' THEN empno ELSE NULL END, CASE WHEN active = 'Y' THEN hiredate ELSE NULL END) EXCLUDE NULL KEYS;
答案 1 :(得分:0)
与其他几个DBMS不同,DB2不支持部分索引。
所以我认为你不能在DB2中实现它