Oracle之序列(主键自增)
Oracle之序列(主键自增)
1.
在Oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户收工完成处理。
序列的创建格式:
- CREATE SEQUENCE sequence
- [INCREMENT BY n][STARTWITH n]
- [{MAXVALUE n | NOMAXVALUE}]
- [{MINVALUE n | NOMINVALUE}]
- [{CYCLE|NOCYCLE}]
- [{CACHE n|NOCACHE}] ;
- CREATE SEQUENCE myseq ;
- nextVal : 学的序列的下一个内容
- currVal : 去的序列的当前内容
- CREATE TABLE testseq(
- next NUMBER ,
- curr NUMBER
- ) ;
现在向表中添加数据,添加数据的时候需要手工使用序列
范例:使用序列
- INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ;
该操作执行5次。
查询testseq表:
- SELECT * FROM testseq ;
也就是说,现在这种序列,每次增长的幅度是1,也可以修改序列的增长幅度。
- 每次的增长幅度 INCREMENT BY 长度
- DROP SEQUENCE myseq ;
- CREATE SEQUENCE myseq INCREMENT BY 2;
- DROP TABLE testseq ;
- CREATE TABLE testseq(
- next NUMBER ,
- curr NUMBER
- ) ;
- INSERT INTO testseq(next,curr) VALUES (myseq.nextval,myseq.currval) ;
默认情况下,序列从1开始,那么也可以使用 START WITH 指定其开始位置。
- DROP SEQUENCE myseq ;
- CREATE SEQUENCE myseq INCREMENT BY 2 STARTWITH 10 ;--从10开始
创建一个序列,让其取固定值在1、3、5、7、9,循环序列。
- DROP SEQUENCE myseq ;
- CREATE SEQUENCE myseq MAXVALUE 10 INCREMENT BY 2 START WITH 1
- CACHE 2 CYCLE;
评论暂时关闭