如何做这样的约束?

yzsind 2003-10-27 01:32:08
我有一个字符型字段,要求字段值的每一个字符只能为1,A, B,4,Z,6,a中的任意一个,请问在表结构中如何设计这样的约束?
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevin218 2003-10-27
  • 打赏
  • 举报
回复
你在定义表结构的时候,加约束条件就ok。比方:
create table samp(
empNo varchar2(20),
empName varchar2(20) CHECK(empName in ('1','A',...,'a')),
......
);

或者你是定义了一个表结构,想在修改字段的约束条件的话,比方:
alter table samp modify(empName varchar2(20) constraint consCheck1 check (empName
in ('1'...)));

你也当然可以做成触发器来检验它,
create or replace insTrig
before insert on empName of samp
for each row
declare
str varchar2(20),
...
begin
if inserting then
elsif :new.empName not in ('1',...,'a') then
......
else
dbms_output.put_line("......");
end if;
end instrig;
/

hdkkk 2003-10-27
  • 打赏
  • 举报
回复
alter table tab1 modify colname
check colname in ('1','A', 'B','4','Z','6','a')

大概这样子
mosaic 2003-10-27
  • 打赏
  • 举报
回复
1.插入之前进行校验
2.用insert触发器来校验,有字符不在此范围时raise一个exception.

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧