oracle数据库中的序列

什么是序列?在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开始,这是不可能的,除非你重新做。

 

  

猜你喜欢

转载自www.cnblogs.com/jasonboren/p/10923756.html
0条评论
添加一条新回复