ORACLE数据库[序列]+[触发器]实现主键自增

1.创建自增序列(seq_student)

CREATE OR REPLACE SEQUENCE seq_student
             INCREMENT BY 1 --每次增加1,可以写非0的任何整数
             START WITH 1000 -- 从1开始(起始值)
             NOMAXVALUE   -- 设置最大值:设置为 NOMAXVALUE 表示无最大值;设置为  MAXVALUE 999  表示最大值 999
             MINVALUE 1000   -- 设置最小值
             NOCYCLE      -- 不循环一直增加
             CACHE 20; -- 设置20个缓存,不使用缓存则写 NOCACHE

2.创建触发器(tri_student_ins)

CREATE TRIGGER tri_student_ins   --每个触发器名不可一样
   BEFORE INSERT ON t_student FOR EACH ROW  WHEN (NEW.ID IS NULL) --STUDENT:换为自己的表名;ID 换为自己的主键名
BEGIN 
  SELECT seq_student.nextval INTO:NEW.ID FROM DUAL;  -- SEQ_STUDENT:换为上一步创建的自增序列名;ID 换为主键名
END;

3.插入数据,不需要指定主键,主键自增

INSERT INTO t_student(code,name) VALUES
SELECT 'c1','n1' FROM dual UNION
SELECT 'c2','n2' FROM dual UNION 
SELECT 'c3','n3' FROM dual 

原文连接:🔗酷酷的阿杰

posted @ 2022-12-29 15:11  Journey&Flower  阅读(127)  评论(0)    收藏  举报