序列是什么,通俗点说,序列就是按照一定顺序进行排列,序列会自动给你递增,生成唯一的序列号;
oracle数据库不同于sqlServer数据库,oracle数据库中是没有自增长列,使用的是sequence序列;
==== 创建序列
create sequence emp_sequence -- (序列名)
increment by 1 -- (每次增长的数)
start with 1 -- (开始值)
nomaxvalue -- (没有上限值)
nocycle -- (不循环,递增)
nocache -- (缓存)
==== 如何使用序列 (一般用于在主键列或者是唯一的自增列)
--创建表
create table user ( userId number(10) primary key, userName varchar2(30))
--在表使用序列
insert into user (userId, userName) values(emp_sequence.nextval, "张三" )
====1、需要注意的一般常使用nocache 这可以防止出现跳号的情况,cache 10 使用会将10个序列号存储在缓存中,这样会提高效率,如果出现异常情况(断电或断网等等)
会出现跳号的现象;2、在使用currval 前需要先初始化(先执行nextval)
例如: select emp_sequence.nextval form dual; --- 第一次返回的初始化的序列号
select emp_sequence.currval form dual; --- 查询当前的序列