是否可以在两列上创建条件索引?
CREATE UNIQUE INDEX idx_dup_wfc
ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
THEN (NAME, DEPT_OWNER)
ELSE NULL
END)
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
是的,但您必须按列执行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
)
Run Code Online (Sandbox Code Playgroud)
(代码中的ELSE是多余的).