创建表AUTO_ID自动加1

 Code
Codecreate sequence SE_RECORD_STOCK_DETAIL
minvalue 1
maxvalue 99999999999999999999999
start with 41
increment by 1
cache 20;
create table RECORD_STOCK_DETAIL
(
AUTO_ID INTEGER not null,
CHECK_NO VARCHAR2(20),
TRADE_CODE VARCHAR2(100),
TRADE_NAME VARCHAR2(100),
CHECK_DATE DATE,
COP_G_NO VARCHAR2(100),
NUM NUMBER(17,5),
UNIT VARCHAR2(4)
)
create or replace trigger Tr_RECORD_STOCK_DETAIL
before insert on RECORD_STOCK_DETAIL
for each row
begin
select SE_RECORD_STOCK_DETAIL.nextval into :new.Auto_ID from dual;
end;
下面是一个值得学习的触发器

 Code
Codecreate or replace trigger Tr_GJ_LineOne_Head
before insert on GJ_LineOne_Head
for each row
/******************************************************************************
PURPOSE: 清单自动编号
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 1. Created this procedure.
编码规则:(例如:LA23350604342100001)
******************************************************************************/
declare
maxNum varchar2(20);
FirstNum varchar2(20);
prefix varchar2(20);
sn varchar2(20);
ncount numeric;
begin
FirstNum:='0001';
prefix:= :new.Biz_Type||:new.IE_FLAG||:new.Trade_Code||to_char(sysdate,'yymm');
select count(*) into ncount from gj_lineone_head where substr(GateJob_No,0,16)=prefix;
if ncount > 0 then
select nvl(lpad(to_number(max(substr(GateJob_No,-4)))+1,4,'0'),FirstNum) into sn
from GJ_LineOne_Head
where trunc(appdate,'mm')=trunc(sysdate,'mm') and trunc(appdate,'yy') = trunc
(sysdate,'yy')
and trade_code=:new.trade_Code and Biz_Type = :new.Biz_Type and IE_FLAG =
:new.IE_FLAG;
else
sn:=FirstNum;
end if;
maxNum:=prefix||sn;
select maxNum into :new.GateJob_No from dual;
end;
 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号