Oracle 建表sql+自增主键

Posted vmkash

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 建表sql+自增主键相关的知识,希望对你有一定的参考价值。

-- 创建表 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+自增主键的主要内容,如果未能解决你的问题,请参考以下文章

SQL 一个表只有一个自增的主键字段,如何插入

oracle自增主键从多少开始

oracle 实现 自增主键功能

oracle怎么实现id自增和设置主键啊

oracle一个表中没有主键怎么设置主键

my sql自增字段作主键 在程序写数据时还需要赋值么