`
李小本事辉
  • 浏览: 748 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle中实现主键的默认自增长

阅读更多

       很多时候在做和数据库相关的操作的时候,主键不能由用户去填写或涉及多个用户同时操作一张表的时候,就需要对主键进行严格的控制,这里主要讲Oracle中如何实现主键的自增长。

       主要由三步组成,1)建表;2)建立序列;3)建立触发器(目的是在表插入数据的时候启用序列生成的值),我们通过下面的例子来说明:

        1)建立对应的数据库表:

        drop table TEST;

        create table TEST
        (
           bsm         NUMBER(10) not null,
           xh          NUMBER(10),
           posx        NUMBER(15,5),
           posy        NUMBER(15,5)
         );

       alter table TEST add constraint PK_TEST primary key (BSM);

        2)建立序列

      drop sequence TEST_SEQ;

       create sequence TEST_SEQ
       minvalue 1
       maxvalue 999999999999999999
       start with 1
       increment by 1
       cache 20;

注:建立序列,最小值为1,从1开始计数和每次递增量为1;

        3)建立触发器

       drop trigger test_trig;

       CREATE OR REPLACE TRIGGER "test_trig"
       BEFORE INSERT ON test
       REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
       DECLARE
       BEGIN
           SELECT TEST_SEQ.NEXTVAL INTO :NEW.BSM FROM DUAL;
       END test_trig;

通过上述三步就完成了主键自动生成的设定,以后就可以根据业务需求直接插入业务数据就可以了

      

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics