我一直收到错误“ORA-00907:缺少右括号”时运行以下create table
语句:
create table employee(
primary key(emp_id number(20)),
emp_name varchar(30),
birth_date date CHECK(birth_date>18),
gender varchar(10),
dept_no number(20)
CONSTRAINT fk FOREIGN KEY(dept_no)
REFERENCES department(dept_no),
address varchar(50),
designation varchar(20)
CHECK(designation IN('manager', 'clerk', 'leader', 'analyst', 'designer', 'coder','tester')),
salary number(50)
CHECK(salary>0),
experience number(2),
email_id varchar(30)
CONSTRAINT chk_email
CHECK (REGEXP_LIKE(email_id,'^[A-Za-z0-9_.]+@[A-Za-z]+\.[A-Za-z]{2,4}$'))
);
我已经查了确切的语法,检查了很多次,一切似乎都很完美,但错误仍然存在。什么是错的?
1条答案
按热度按时间juzqafwq1#
一点点的
birth_date
列的检查约束条件错误(日期怎么会大于18?),varchar2
而不是varchar
,number(50)
的精度太高(也许您宁愿跳过它)。修复后(使用虚拟主表):
员工姓名:
作为检查员工年龄的触发器,以下是方法: