检查另一列 (2) 中的值的列 (1) 的约束等于 'String1' 和 'String2',将列 (1) 设置为非空
Constraint for a column(1) that checks the values in another column(2) are equal to 'String1' and 'String2', setting column(1) to not null
如何为检查另一列(2) 中的值并等于 'String1' 和 'String2' 但不等于 'String3' 的列 (1) 创建约束,因此将 column(1) 设置为 not null
这是我到目前为止尝试过的
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)
如果 ERSta 是 APPROVED/DENIED 之外的另一个值,将执行检查子句。
如果 ERSta 被批准或拒绝,则 AUserNo 必须不为空。
如何为检查另一列(2) 中的值并等于 'String1' 和 'String2' 但不等于 'String3' 的列 (1) 创建约束,因此将 column(1) 设置为 not null 这是我到目前为止尝试过的
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)
如果 ERSta 是 APPROVED/DENIED 之外的另一个值,将执行检查子句。
如果 ERSta 被批准或拒绝,则 AUserNo 必须不为空。