oracle主键自增
2018-09-09 本文已影响0人
菜鸟小学生
创建序列语法:
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;