SQL Check Constraint无法引用其他列

use*_*711 1 sql oracle

我试图添加这个SQL检查

ALTER TABLE School
add Role check_role
  CHECK (check_role IN ('Teaching Assistant', 'Lecturer', 'Professor'));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ERROR at line 3:
ORA-02438: Column check constraint cannot reference other columns

SQL> desc School;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 STAFFNUM                                  NOT NULL VARCHAR2(12)
 NAME                                      NOT NULL VARCHAR2(50)
 ADDRESS                                   NOT NULL VARCHAR2(300)
 DOB                                                DATE
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用检查约束check_role添加列调用Role

我正在使用Oracle SQL.

谢谢大家的帮助!

sol*_*anv 5

将Role列添加到表中

 alter table School
    add (Role   varchar(10));
Run Code Online (Sandbox Code Playgroud)

添加约束到"角色"列.

alter table School
  add constraint check_role
  check (Role IN ('Teaching Assistant', 'Lecturer', 'Professor'));
Run Code Online (Sandbox Code Playgroud)

=========

ALTER TABLE School ADD COLUMN Role VARCHAR(50) 
CONSTRAINT check_role CHECK 
  (Role IN ('Teaching Assistant', 'Lecturer', 'Professor'));
Run Code Online (Sandbox Code Playgroud)