微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

限制检查另一列2中的值的column1等于'String1'和'String2',并将column1设置为不为null

如何解决限制检查另一列2中的值的column1等于'String1'和'String2',并将column1设置为不为null

如何为列(1)创建约束,该约束检查另一个列(2)中的值并且等于'String1'和'String2'但不等于'String3',因此将column(1)设置为not空值 这是我到目前为止尝试过的

    Create Table ER(ERNo INTEGER,ERSta Varchar2(8 CHAR) Default 'PENDING' Not Null,AUserNo Integer,CONSTRAINT ERnopK PRIMARY KEY(ERNO),CONSTRAINT ERSta_check CHECK (ERSta IN ('PENDING','APPROVED','DENIED')),CONSTRAINT AUserNoFK FOREIGN KEY (AUserNo) REFERENCES Users(UserNo),CONSTRAINT AUserNo CHECK (WHEN (ERSta like('APPROVED')or ('DENIED')) THEN AUserNo not null);

所以我的问题是:由于AuserNo已经允许空值,当在ERSta中输入“ APPROVED”或“ DENIED”时,如何将AUserNo设置为不为空?

预先感谢您的帮助。

解决方法

check (ERSta NOT IN ('APPROVED','DENIED') or AUserNo is not null)
  1. 如果ERSta是除APPROVED / DENIED之外的另一个值,则将执行check子句。

  2. 如果ERSta被批准或拒绝,则AUserNo必须不为空。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。