Oracle 数据库添加序列

简述

为数据表添加序列实现插入数据时可获取自增主键。

定义

序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。

其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

语法

  1. 查询序列
select * from user_sequences

SEQUENCE_NAME 序列名称
MIN_VALUE 最小值
MAX_VALUE 最大值
INCREMENT_BY 递增间隔数(默认为1,可为负值)
LAST_NUMBER 最后序列数
CYCLE_FLAG 循环标志(是否允许序列到达极限值后重新从最小值开始计数)

  1. 创建序列
CREATE SEQUENCE test_seq  --序列名
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
  1. 删除序列
DROP SEQUENCE test_seq

4.序列的使用

select test_seq.currval from dual   //获取当前序列值
select test_seq.nextval from dual   //生成下一个序列号

5.创建触发器

create trigger test_trig before
insert on student for each row when (new.id is null)
begin
select test_seq.nextval into:new.id from dual; 
end;

你可能感兴趣的:(Oracle 数据库添加序列)