oracle设置主键自增

第一步:

DROP sequence 序列名;-- 删除以前的序列,以前没有的话不需要删除
CREATE sequence 序列名 minvalue 1 MAXVALUE 99999999 increment BY 1 START WITH 1;

第二步:

DROP TRIGGER 触发器名;-- 删除触发器名,以前没有的话不需要删除
CREATE 
    OR REPLACE TRIGGER 触发器名 BEFORE INSERT ON 表名 FOR EACH ROW
BEGIN
SELECT
    序列名.nextval INTO : new.自增字段名 
FROM
    DUAL;
END;

搞定

下面举个例子吧:

新建一张TEST表,里面有两个字段,分别是ID和NAME,设置ID为主键,注意ID是NUMBER类型

-- 新建序列self_increasing_seq
CREATE sequence self_increasing_seq minvalue 1 MAXVALUE 99999999 increment BY 1 START WITH 1;

-- 新建触发器
CREATE 
    OR REPLACE TRIGGER self_increasing_trigger BEFORE INSERT ON TEST FOR EACH ROW
BEGIN
SELECT
    self_increasing_seq.nextval INTO : new.ID 
FROM
    DUAL;
END;

执行下面的插入sql:

INSERT INTO TEST (NAME) VALUES ( '路人甲' );
INSERT INTO TEST (NAME) VALUES ( '路人乙' );
INSERT INTO TEST (NAME) VALUES ( '路人丙' );

得到数据:

昔日我曾苍老,如今风华正茂(ง •̀_•́)ง
原文地址:https://www.cnblogs.com/lgqrlchinese/p/14262961.html