方法是这样的,可以建一个序列sequence,设置其属性从1开始自动升序增长。在向基本表中插入数据时,引用序列的值就可以了。
创建序列的方法如下:
Create sequence
[start
[increment
[maxvalue
[minvalue
[cycle | no cycle]5
[cache
说明:1表示序列开始时的初始值,1代表升序,-1代表降序。2increment代表升序或者降序的步长,1代表每次增加1,-1代表每次减小1. 3 maxvalue num 表示最大值是多少,默认是10的27次方大;nomaxvalue表示没有最大值。4 minvalue num表示最小值是多少,默认是10的负26次方小;nominvalue表示没有最小值。5 表示是否循环,cycle时,当达到最大值时,又从最小值开始循环,no cycle时,当达到最大值或者达到最小值时,数据库报错。6表示内存中的缓冲多大,num表示根据序列规则一次向数据库申请num大小的序列号,如果用完不够了,则在申请num大小的序列号。Nocache表示不采用缓冲。
下面是一个自增长的例子:
create sequence myseq
start with 1
increment by 1
nomaxvalue
minvalue 1
nocycle
cache 10;
创建了一个序列,使用序列插入值:insert into test2 values(myseq.nextval,'张飞');在序列中,使用currval和nextval两个“伪列“访问当前值和下一个值。若想多表都使用自增长序列,则多定义几个序列即可。个人体悟而已,希望对见者有所帮助。