美文网首页
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