我已将此表创建为我的作业的一部分,
create table course (
cnum char(4) primary key,
title varchar(20),
credits number(1)
);
该表具有此检查约束cnum_ck
cnum like '[a-z][0-9][0-9][0-9]'
当我尝试插入以下行时
insert into course values('m130', 'xyz', 3);
它扔了check constraint cnum_ck violation error
。我不知道哪里出错了。请帮忙
答案 0 :(得分:2)
您正在使用LIKE
的SQL Server模式,Oracle中LIKE
不支持这些非标准通配符(除Sybase之外的任何其他数据库都不支持)。相反,使用正则表达式:
create table course (
cnum char(4) primary key,
title varchar(20),
credits number(1),
constraint chk_cnum check (regexp_like(cnum, '^[a-z][0-9][0-9][0-9]$'))
);
insert into course values('m130', 'xyz', 3);
Here是一个SQL小提琴。
答案 1 :(得分:1)
约束使用正则表达式
所以它应该是regexp_like(cnum, '[a-z][0-9][0-9][0-9]')