什么是序列?在mysql中有一个主键自动增长的id,例如:uid number primary key auto_increment;在oracle中序列就是类似于主键自动增长,两者功能是一样的,只是叫法不同而已。
在oracle中想要实现id自动增长只能用序列来实现。在oracle中,是将序列装入内存,可以提高访问效率。
1).序列的创建
create sequence 序列名称
increment by n 每次增长多少
start with n从几开始
[maxvalue n最大值|nomaxvalue]
[minvalue n最小值|nominvalue]
[cycle |nocycle 是否循环]
[cache n缓存的数量|nocache]
例如:create sequence person_pid_seq
increment by 1
start with 1
maxvalue 1000
nocycle
nocache;
2.)序列的操作
序列创建完成之后,所有的自动自动增长就都是由我们自己操作了,那么如果操作呢?提供了两种方式。
2.1 nextval:取得序列的下一个值
2.2 currval:取得当前序列的内容
注意:currval 需要再nextval调用之后才能使用
3.)序列的使用
insert into person values(person_pid_seq.nextval,'name,'adress');//一般是利用nextval,让id保持一致递增。
4.)序列的注意事项
由于序列是同auto_increment一样的,所有它是不会回头的,即使你删掉了数据,它的id永远不会回到以前,只会一直递增,例如,你有十条数据,你删了第十条,希望下一条的id从10开始,这是不可能的,除非你重新做。