流殃的博客

| Comments

前言

在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增,需要采用序列的方式来自增主键。

具体操作

创建一个表

create table test(
id integer primary key,
content varchar(50)
)

创建一个序列

---自增序列
CREATE SEQUENCE CUX_DEMO_SEQUENCE
MINVALUE 1
MAXVALUE 99999999999
START WITH 10000
INCREMENT BY 1
NOCYCLE
CACHE 20
ORDER ;
  • MINVALUE 1   最小值
  • MAXVALUE 99999999999   最大值
  • START WITH 10000  起始数值
  • INCREMENT BY 1   每次增加1
  • NOCYCLE    一直累加不循环
  • CACHE 20 缓存
  • NOMAXVALUE   无最大值
  • NOCACHE 不设置缓存

创建一个触发器

create or replace trigger mm
before insert on test
referencing old ad old new as new
for each row
begin
  select CUX_DEMO_SEQUENCE.nextval
  into: new.id
  from dual;
end mm;
  • CUX_DEMO_SEQUENCE:序列的名字
  • mm:触发器名字
  • new.id 中的id 是自增列的名字
  • test:操作的表的名字

参考

Comments

评论