您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
oracle-序列
发布时间:2017-11-23 15:14:25编辑:雪饮阅读()
序列是什么?
在mysql中主键自增即auto_increment可以每次插入数据不用插入主键所在id。id会自动增长。
而在oracle中主键自增可以通过序列完成。
创建一个序列:
SQL> create sequence seq1
2
SQL> /
获取下一序列值(生成序列值),下一序列值就相当于mysql中下一个自增id:
SQL> select seq1.nextval from dual;
NEXTVAL
----------
1
每获取一次下一序列值,则下一序列值都会增长。
获取当前序列值。如果没有生成过序列值,则此处可能会报错:
SQL> select seq1.currval from dual;
CURRVAL
----------
1
创建带步长的序列:
SQL> create sequence seq2 increment by 2;
Sequence created.
这里创建的带步长的序列设置为2,默认创建的不带步长参数的则步长为1.
创建带起始值的序列:
SQL> create sequence seq3 increment by 3 start with 1000;
Sequence created.
创建带最大值,最小值、循环、步长和缓存的序列:
SQL> create sequence seq4 increment by 1 start with 5 maxvalue 10 minvalue 1 cycle cache 2;
Sequence created.
这里设置了最大值为10,最小值为1,起始值是5,则当第一次获取此序列的下一序列值为5,每次获取下一序列值则自增长1(步长为1),一直到下一序列值为10时若再次获取下一序列值时则下一序列值会变成1(最小值)。
cache,它的用处是缓存指定个数的序列值。
创建带最大值,最小值、循环、步长和禁用缓存的序列:
SQL> create sequence seq5 increment by 1 start with 5 maxvalue 10 minvalue 1 cycle nocache;
添加数据时使用序列:
SQL> insert into cat values (seq1.nextval,'cat'||seq1.currval);
1 row created.
SQL> select * from cat;
CAT_ID CATNAME
---------- ------------------------------
4 cat4
SQL>
删除序列:
SQL> drop sequence seq1;
Sequence dropped.
关键字词:oracle,序列
上一篇:oracle-显式游标
下一篇:oracle-异常处理