当前位置: 首页 > 面试题库 >

Oracle SQL约束where子句

闻人博
2023-03-14
问题内容

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

  • TesterID
  • TesterName
  • IsDefault
  • Application_ID

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

我尝试了一个约束:

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

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

感谢帮助!


问题答案:

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

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

这是一个 DEMO



 类似资料:
  • 我有这样的情况: 由于项目经理之间存在关系m:n,我将有第三个表: 其中(ManagerID,ProjectID)是Manager_has_Project的复合主键 让我们假设我们必须删除一个从我们的数据库中创建了一些项目的经理:SQL不会让我们这么做。我们可以在子表“on DELETE cascade”中添加对fk ManagerID的约束,但在这种情况下,我们将丢失有关(例如)有多少经理为一个

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the

  • 问题内容: 在Derby服务器中,如何使用模式的系统表中的信息来创建select语句,以便检索每个表的约束名称? 问题答案: 相关手册是《Derby参考手册》。有许多版本可用:10.13是2017年4月的最新版本,但在2009年5月是10.3的最新版本。 原始答案 由于Derby的最新版本要求系统目录表的前缀在kiwicomb123的注释中引用了10.13 ,因此可以修改查询以使用显式的JOIN表

  • 主要内容:NOT NULL 约束,DEFAULT 约束,UNIQUE 约束,PRIMARY KEY 约束,CHECK 约束,删除约束约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。 约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。 以下是在 SQLite 中常用的约束。 NOT NULL 约束:确保某列不能有 NULL 值。 DEFAULT 约束:当某列没有指定值时,为该列提供默认值。 UNIQUE 约束:确保某

  • PostgreSQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。 约束确保了数据库中数据的准确性和可靠性。 约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。 以下是在 PostgreSQL 中常用的约束。 NOT NULL

  • 主要内容:创建约束,删除约束关于 SQL 约束,我们已经在《 RDBMS是什么》中进行了简要介绍,但是现在我们有必要再温习一下,并稍加深入。 约束(Constraint)是指表的数据列必须强行遵守的规则,这些规则用于限制插入表中的数据类型,这样能够确保每份数据的准确定和可靠性。 约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。 下面是 SQL 常用的一些约束: 约束 说明 NOT NULL