杂记之oracle创建序列和触发器实现字段自增

93 阅读1分钟
-- 创建序列
CREATE SEQUENCE TABLE_NAME_ID_SEQ
INCREMENT BY 1  -- 每次新增1
START WITH 1 -- 开始值
MAXVALUE 999999999 -- 最大值
NOCYCLE       -- 不循环
NOCACHE;      -- 没有缓存 

-- 删除序列
drop SEQUENCE TABLE_NAME_ID_SEQ;

-- 创建触发器
CREATE OR REPLACE TRIGGER TABLE_NAME_ID_SEQ_TRG
BEFORE INSERT ON "TABLE_NAME"
FOR EACH ROW
WHEN (NEW."ID" IS NULL)
BEGIN
  SELECT TABLE_NAME_ID_SEQ.NEXTVAL
  INTO :NEW."ID"
  FROM DUAL;
END;

-- 删除触发器
drop TRIGGER TABLE_NAME_ID_SEQ_TRG;