oracle 触发器完成自增列 功能
create table t_student(
id number,
sno varchar2(20),--学号
name varchar2(20)
)
--
create sequence myseq--公共序列
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 30;
create sequence mysno--学号序列
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 30;
--触发器
create or replace trigger mytr
before insert on t_student for each row
begin
select myseq.nextval into :new.id from dual;
select 'S'||to_char(mysno.nextval,'000') into :new.sno from dual;
end;
--测试
insert into t_student(name) values('张三')
insert into t_student(name) values('李四')
insert into t_student(name) values('王五')
create table t_student(
id number,
sno varchar2(20),--学号
name varchar2(20)
)
--
create sequence myseq--公共序列
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 30;
create sequence mysno--学号序列
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 30;
--触发器
create or replace trigger mytr
before insert on t_student for each row
begin
select myseq.nextval into :new.id from dual;
select 'S'||to_char(mysno.nextval,'000') into :new.sno from dual;
end;
--测试
insert into t_student(name) values('张三')
insert into t_student(name) values('李四')
insert into t_student(name) values('王五')
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货