前言
在学习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:操作的表的名字