是否可以在两列上创建条件索引?
CREATE UNIQUE INDEX idx_dup_wfc
ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
THEN (NAME, DEPT_OWNER)
ELSE NULL
END)
返回
ORA-00906: missing left parenthesis
但是下面的作品CREATE UNIQUE INDEX idx_dup_wfc
ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
THEN NAME
ELSE NULL
END)
最佳答案
是的,但您必须每列执行一个 CASE:
CREATE UNIQUE INDEX idx_dup_wfc
ON WF_WORKFLOW_CLASS
(CASE WHEN is_active = 1 THEN NAME END
,CASE WHEN is_active = 1 THEN DEPT_OWNER END
)
(代码中的 ELSE 是多余的)。
关于带有两个标识符的 Oracle 条件索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16218609/