oracle 实现任务编码自增
业务需求:任务编号前面4位数(通过查询其他表,值不确定),后面5位数实现自增
实现方法如下
1、创建序列
1 create sequence GENERAL_DES_TASK_SEQ_1 2 increment by 1 3 start with 1 4 maxvalue 999999; 5 6 格式: 7 create sequence 序列名 8 increment by 1 9 start with 1 10 maxvalue 999999999;
2、创建触发器
1 create or replace trigger GENERAL_DES_TASK_TRG_1 2 before insert on GENERAL_DES_TASK 3 for each row 4 WHEN (new.TASK_CODE is null) --注意当这个值位null时执行此方法 5 begin 6 declare 7 v_node_code varchar2(50); --声明变量,用于接收任务编号前4位 8 begin 9 SELECT NODE_CODE 10 into v_node_code 11 FROM STANDA_SCHEDULE_NODE 12 WHERE STANDA_SCHEDULE_ID = 504 13 AND STANDA_SCHEDULE_NODE_ID = :new.STANDA_SCHEDULE_NODE_ID; 14 select v_node_code || 15 substr('000000000' || to_char(GENERAL_DES_TASK_SEQ_1.Nextval), 16 -5, 17 5) 18 into :NEW.TASK_CODE 19 FROM DUAL; 20 end; 21 end; 22 23 格式: 24 create or replace trigger 触发器名 25 before 26 insert on 表名 27 for each row 28 declare 29 -- local variables here 30 begin 31 SELECT 序列名.Nextval INTO :NEW.自增列 FROM DUAL; 32 end;优质内容筛选与推荐>>