美文网首页
Oracle之如何设置主键自动增长

Oracle之如何设置主键自动增长

作者: 后操场 | 来源:发表于2018-02-24 11:05 被阅读0次

新年刚来到就被分配了一个小任务:就是调试公共资源数据,但由于对方不是很熟悉数据表结构,所以给出的数据库设计的sql不是很完整,只能自己设置主键自动增长了。好了,废话不多说了,直接上代码。

一、创建表的时候直接设置主键为 sys_guid 

create table pro(  

            pro0 varchar2(255),

            pro1 varchar2(50),

            pro2 varchar2(50),

            pro_id  raw(16) default sys_guid() primary key    --主键 pro_id 设置为默认的sys_guid

);

下面开始测试了。

二、通过序列生成自动增长的i的

--1 建立数据库表 utr_pro:

      create table UTR_PRO(

              PRO_ID              number(38) not null,

              PRO_EXT0            VARCHAR2(255),

              PRO_EXT1            VARCHAR2(50),

              PRO_EXT2            VARCHAR2(50)

      )

    -- 把pro_id设为主键

      alter table UTR_PRO add constraint PK_UTR_PRO primary key (PRO_ID);

--2)建立序列

      drop sequence UTR_PRO_SEQ;  --该序列如果存在就删除

      create sequence UTR_PRO_SEQ --新建序列名称

      minvalue 1                  --最小值

      maxvalue 999999999999999999 --最大值

      start with 1                --初始值

      increment by 1              --每次增加值

      cache 20;

--3)建立触发器

      drop trigger utr_pro_trig;                    --该触发器如果存在就删除

      CREATE OR REPLACE TRIGGER "utr_pro_trig"      --新建触发器名称

      BEFORE INSERT ON utr_pro

      REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW

      DECLARE

      BEGIN

          SELECT UTR_PRO_SEQ.NEXTVAL INTO :NEW.PRO_ID FROM DUAL;

      END utr_pro_trig;

注意,如果在执行过程中出现 XX不存在,则直接执行下面的语句即可。

下面验证一下效果如何,

相关文章

网友评论

      本文标题:Oracle之如何设置主键自动增长

      本文链接:https://www.haomeiwen.com/subject/lifqxftx.html