您的位置:首页 > 数据库 > Oracle

ORACLE 中,数据的id号自动生成,利用触发器的实现

2012-06-01 14:39 691 查看
--创建序列

create sequence seq_user3bh

increment by 1

start with 11

maxvalue 99999999;

--创建触发器

create or replace trigger base_user

before insert on base_user3

for each row

DECLARE

xh varchar2(20);

begin

select seq_user3bh.nextval into xh from dual;

IF xh like '%1111%' or xh like '%2222%' or xh like '%3333%' or xh like '%4444%' or xh like '%5555%'

or xh like '%6666%' or xh like '%7777%' or xh like '%8888%' or xh like '%9999%' or xh like '%0000%' THEN

select seq_user3bh.nextval into :new.bh from dual;

else

select seq_user3bh.CURRVAL into :new.bh from dual;

end IF;

end;

如果是11g,在em的网页界面中,可以直接操作。

--添加数据,测试

Create table t_user(

Id number(8),userid varchar2(20),loginpassword varchar2(20),isdisable number(6)

);

insert into t_user(userid,loginpassword, isdisable)

values('ffll','liudddyujj', 0);

commit;

insert into t_user(userid,loginpassword, isdisable)

values('xh','zhang', 0)

select * from t_user;

--删除

DROP sequence seq_user3bh;

DROP TRIGGER base_user;

--触发器----第二种方法

create or replace trigger base_user

before insert on base_user3

for each row

DECLARE

xh varchar2(20);

begin

select seq_user3bh.nextval into xh from dual;

while (xh like '%1111%' or xh like '%2222%' or xh like '%3333%' or xh like '%4444%' or xh like '%5555%'

or xh like '%6666%' or xh like '%7777%' or xh like '%8888%' or xh like '%9999%' or xh like '%0000%') LOOP

select seq_user3bh.nextval into xh from dual;

end LOOP;

select seq_user3bh.CURRVAL into :new.bh from dual;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: