读书人

oracle中兑现自动增长列

发布时间: 2012-11-01 11:11:31 作者: rapoo

oracle中实现自动增长列
oracle中实现自动增长列不能够像 SqlServer中在 表中直接加标示,而是要借助序列来实现。下面简单介绍一下,oracle中实现自动增长列的一个方法

步骤:
1 创建一个序列来实现自动增长。

create sequence user_sequence1
start with 1 ----初值
increment by 1 --增量
nomaxvalue --没有最大值
nocycle --不能循环
nocache --不缓存

注意:序列创建完成时不能加 ;结束

2 创建一个表

create table student(
id numbert,
name varchar2(10)
)

3 测试

insert into student values (user_sequence1.nextval,'aaa');
select * from student;


这样能够实现自动增长列的添加,但是 我们现在一般都是 数据库和程序分离 所以我们最好能够在数据库中把自动增长写好 而程序中只需要加值不需要知道 你是创建的那个序列。

步骤:
1 和上面的第一个一样 省略

2 和上面的一样 省略

3 创建一个触发器

create or replace trigger user_trigger1
before insert on student
for each row
declare
tempnum number;
begin
select user_sequence1.nextval into tempnum from dual;
:new.id :=tempnum;
end;

4 测试
insert into student values (5,'aaa');
select * from student;


说明:这里还是需要给一个number类型的值,但是无论给什么值它都是按照序列的值填充的。所有我们可以在设计数据库的时候给数据库默认值 然后我们添加的时候直接给 default即可。

读书人网 >软件架构设计

热点推荐