小编典典

Oracle SQL约束where子句

sql

我在oracle上有Tester表,其中包含以下各列:

  • TesterID
  • TesterName
  • IsDefault
  • Application_ID

TesterID是主键。现在,我希望只能有一个默认测试器,这意味着只有一个测试器可以在ApplicationID上具有IsDefault = Y的提示。

我尝试了一个约束:

alter table Tester add constraint Tester_ISDEFAULT UNIQUE(IsDefault,Application_ID);

是否可以在isdefault = Y的位置上设置唯一键?

感谢帮助!


阅读 161

收藏
2021-04-28

共1个答案

小编典典

不与UNIQUE约束。但是,您可以UNIQUE INDEX改用:

CREATE UNIQUE INDEX ApplicationId_Default_Y ON tester (
  CASE WHEN IsDefault = 'Y'
       THEN ApplicationId
       ELSE NULL
  END
);

这是一个 DEMO

2021-04-28