当前位置: 数据库>oracle
oracle中的ID号实现自增长的方法
来源: 互联网 发布时间:2014-10-04
本文导语: 利用序列产生主键值。 序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。...
利用序列产生主键值。
序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。
--创建sequence
create sequence seq_on_test
increment by 1
start with 1
nomaxvalue
nocycle
nocache;
--建表
drop table test;
create table test(
ID integer
,stu_name nvarchar2(4)
,stu_age number
);
--插入数据
insert into test values(seq_on_test.nextval,'Mary',15);
insert into test values(seq_on_test.nextval,'Tom',16);
select * from test;
--结果
/*
1 Mary 15
2 Tom 16
*/
--seq的两个方法
select seq_on_test.currval from dual;
select seq_on_test.nextval from dual;
--结果
/*
2
3
*/
序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。
代码如下:
--创建sequence
create sequence seq_on_test
increment by 1
start with 1
nomaxvalue
nocycle
nocache;
--建表
drop table test;
create table test(
ID integer
,stu_name nvarchar2(4)
,stu_age number
);
--插入数据
insert into test values(seq_on_test.nextval,'Mary',15);
insert into test values(seq_on_test.nextval,'Tom',16);
select * from test;
--结果
/*
1 Mary 15
2 Tom 16
*/
--seq的两个方法
select seq_on_test.currval from dual;
select seq_on_test.nextval from dual;
--结果
/*
2
3
*/