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;
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;
相关文章推荐
- php根据数据id自动生成编号的实现方法
- Oracle中用触发器实现自动记录表数据被修改的历史信息
- oracle 如何实现主键id自增,或自动生成
- 利用hibernate实现oracle(每张表的ID)自动增长
- oracle 序列 + 触发器 实现 ID自动增长
- oracle中利用trigger,sequence自动生成ID
- Oracle中用触发器实现自动记录表数据被修改的历史信息
- oracle主键自动增长的实现 Oracle Sequence oracle maxid自动生成--ORA-00001: 违反唯一约束条件 (NAME.SYS_C005547)产生的原因之一(select * from all_cons_columns w
- oracle利用触发器实现主键的自动增加
- php根据数据id自动生成编号的实现方法
- oracle中插入数据时自动生成主键的触发器
- Oracle中用触发器实现自动记录表数据被修改的历史信息
- oracle中插入数据时自动生成主键的触发器
- Oracle中用触发器实现自动记录表数据被修改的历史信息
- Oracle利用Sequence和触发器Trigger实现Columns的Default自动编号(标识)
- Oracle中用触发器实现自动记录表数据被修改的历史信息
- 【Oracle】利用触发器,序列实现id自增长
- Oracle利用序列实现自动增长列
- Oracle利用数据伪列实现分页功能
- 基于Oracle的EntityFramework的WEBAPI2的实现(四)——自动生成在线帮助文档