oracle主键自增

创建序列语法:

CREATE SEQUENCE sequence  //创建序列名称
   [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
   [START WITH n]    //开始的值,递增默认是minvalue 递减是maxvalue
   [{MAXVALUE n | NOMAXVALUE}] //最大值
   [{MINVALUE n | NOMINVALUE}] //最小值
   [{CYCLE | NOCYCLE}] //循环/不循环
   [{CACHE n | NOCACHE}];//分配并存入到内存中

创建案例:

创建sequence

create sequence seq_on_test 
increment by 1 
start with 1 
nomaxvalue 
nocycle 
nocache; 

使用触发器实现ID递增

创建序列

CREATE SEQUENCE auto;

persons_tri 触发器名字
person 表名
AUTO.nextval AUTO表示刚刚创建的序列
personid 表示自增的字段

CREATE TRIGGER persons_tri
BEFORE INSERT ON person
FOR EACH ROW
DECLARE
BEGIN
SELECT AUTO.nextval
INTO :NEW.personid
FROM dual;
END;

你可能感兴趣的:(oracle主键自增)