一、oracle中序列的简介
序列作为数据库中的对象,主要作用是生成唯一的主键值
二、创建序列
create sequence user_seq;
在上面的基础上:
insert into t_user values(user_seq.nextval,’xiao123456’,’xiao123456’);
然后提交事务就可以看到记录!(nextval是下一个值,currval是当前值,插入的时候要用下一个值)
我们可以查序列的当前值如下
SQL> insert into t_user values(user_seq.nextval,'xiao123456','xiao123456');
1 row insert
SQL> insert into t_user values(user_seq.nextval,'xiao123456','xiao123456');
1 row inserted
SQL> insert into t_user values(user_seq.nextval,'xiao123456','xiao123456');
1 row inserted
SQL> select user_seq.currval from dual;
CURRVAL
----------
3
/*通过查询虚表里面的数据*/
我们创建序列默认初始值是1,我们可以指定默认的初始值:
SQL> create sequence user_seq2 start with 100;
Sequence created
SQL> insert into t_user values(user_seq2.nextval,'xiao123456','xiao123456');
1 row inserted
SQL> select user_seq2.currval from dual;
CURRVAL
----------
100
三、序列的属性
Minvalue maxvalue 最大值和最小值 默认最小值 1 最大值 10 的 27 次方; Increment by 属性
序列增长步长 默认值 1 Cycle 设置循环; (了解即可,不使用); Cache 缓存设置; 一次获取序列的多个连续值,默认 20
,放到内存中,方便下次快速获取;
例如:
create sequence user_seq3 minvalue 5 maxvalue 100;
跳着增长,例子:
SQL> create sequence user_seq4 increment by 3;
Sequence created
SQL> select user_seq4.nextval from dual;
NEXTVAL
----------
1
SQL> select user_seq4.nextval from dual;
NEXTVAL
----------
4
设置缓存能进行优化
create sequence user_seq5 cache 30;
四、插入和更新语句(用的是oracle自带的dept表)
SQL> update dept set dname='司法部' where deptno=50;
1 row updated
SQL> update dept set dname='网络部',loc='China' where deptno=50;
1 row updated
SQL> insert into dept(deptno,dname)values(60,'社会舆论部');
1 row inserted