sql - 用条件检查约束

标签 sql oracle oracle11g constraints ddl

我想知道这个条件是否可以通过检查约束来完成,或者我是否需要创建触发器。

条件:如果学生录取日期不为空,则考试成绩为空

备注:Containt case OR Trigger

我尝试了什么:

ALTER TABLE ADMITED_TABLE
ADD CONSTRAINT AAAA CHECK
 ( CASE  WHEN  DATEADMITED IS NOT NULL THEN MARK NULL END);

错误:

ORA-00920: invalid relational operator
00920. 00000 -  "invalid relational operator"

最佳答案

检查约束采用 bool 条件,因此您必须以这种条件的形式构建此逻辑:

ALTER TABLE ADMITED_TABLE
ADD CONSTRAINT AAAA CHECK
(dateadmited IS NULL OR mark IS NULL);

关于sql - 用条件检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193359/

相关文章:

MySQL select 命令/数据透视表

mysql - 搜索带有特定标签的帖子

sql - 如何在 PL/SQL 的新行中打印输出?

sql - 在多行上插入单个序列值

php - SQL 选择关键字与用户兴趣匹配的帖子

php - Mysql 查询针对类别显示同一列两次

Oracle 的 MySQL 等效 session 变量

oracle - Oracle中表名的最大长度是多少?

sql - 尝试避免重复时缺少NULL关键字错误

sql - Oracle SQL - 检查 sql 数据大小