1. 程式人生 > >Oracle 建表sql+自增主鍵

Oracle 建表sql+自增主鍵

ins acl declare reference 名稱 eas from execute arch

-- 創建表 BONUS_BENCHMARK_VALUE
---------------------------------------------------------------
declare 
    num   number; 
begin 
    select count(1) into num from user_tables where TABLE_NAME = upper(‘BONUS_BENCHMARK_VALUE‘);
    if num>0 then 
        execute immediate ‘drop table BONUS_BENCHMARK_VALUE‘; 
    end if; 
end;
/
-- ----------------------------
-- Table structure for BONUS_BENCHMARK_VALUE
-- ----------------------------

CREATE TABLE BONUS_BENCHMARK_VALUE (
"BENCHMK_ID" NUMBER NOT NULL ,
"BENCHMK_YEAR" NVARCHAR2(20) NOT NULL ,
"BENCHMK_CODE" NVARCHAR2(20) NOT NULL ,
"BENCHMK_VALUE" NVARCHAR2(20) NULL ,
"MEASUREMENT" NVARCHAR2(20) NULL ,
"REFERENCE_START" NVARCHAR2(20) NULL ,
"REFERENCE_END" NVARCHAR2(20) NULL ,
"BENCHMK_TYPE" NVARCHAR2(50) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE
;
-- 創建序列,產生自增數值
-- seq_BONUS_BENCHMARK_VALUE 序列名稱
create sequence seq_BONUS_BENCHMARK_VALUE start with 1 increment by 1;   

--  創建觸發器,在插入數據前,把自增數值賦值給主鍵
--  seq_BONUS_BENCHMARK_VALUE 序列名稱 
--  BENCHMK_ID 主鍵id
create or replace trigger TRIGGER_BONUS_BENCHMARK_VALUE       
before insert on BONUS_BENCHMARK_VALUE       
for each row       
begin       
select seq_BONUS_BENCHMARK_VALUE.nextval into :new.BENCHMK_ID from dual;      
end ;   

Oracle 建表sql+自增主鍵