美文网首页编程语言爱好者
sql实现简单自增长

sql实现简单自增长

作者: 剽悍一小兔 | 来源:发表于2016-08-12 09:56 被阅读91次

    在设计数据库表的过程中,主键一般都设为自增长,数据库产品自带的序列可以解决这个问题。

    其实,用简单的sql查询语句也可以实现。

    假设现在有一张商品表sp001:

    Paste_Image.png

    主键是SPBH,希望从000 增长到 999,不用序列的话可以这样做:
    新建一个程序包,用来处理商品信息的业务:

    create or replace package pkg_spgl is
         --获得商品编号
         function getSpBh(increment integer) return varchar2; 
           
    end pkg_spgl;
    
    
    create or replace package body pkg_spgl is
           function getSpBh(increment integer) return varchar2 is
             spbh  sp001.spbh%type;
           begin
               select to_char(nvl(max(a.spbh),0)+increment,'FM000') into spbh from jack.sp001 a ;
               return spbh;
           end;
    end pkg_spgl;
    

    然后,在insert数据的时候,直接调用获取商品编号的方法即可:

    insert into jack.sp001 values(jack.pkg_spgl.getSpBh(1),'可乐',2.5,30,null,'110000') ;
    
    insert into jack.sp001 values(jack.pkg_spgl.getSpBh(1),'牛奶',3.5,50,null,'110000') ;
    
    insert into jack.sp001 values(jack.pkg_spgl.getSpBh(1),'饼干',5,30,null,'110000') ;
    
    insert into jack.sp001 values(jack.pkg_spgl.getSpBh(1),'蛋糕',100,10,null,'110000') ;
    

    如图,这样也可以简单实现。

    相关文章

      网友评论

        本文标题:sql实现简单自增长

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