我想用一段sql来实现某个字段的记录实现序列号的递增,序列号规则xyz+日期+四位流水码

解决方案 »

  1.   

    select 'xyz'||to_char(sysdate,'yyyymmdd')||seq.nextval from dual;
      

  2.   

    create sequence SEQ
    minvalue 1
    maxvalue 9999
    start with 1
    increment by 1
    cycle;
      

  3.   

    序列来实现
    create sequence seq
    start with 1
    increment by 1insert into tb(id)
    select 'xyz'||to_char(sysdate,'yyyymmdd')||lpad(seq.nextval,4,0) from dual
      

  4.   

    如果每天从0递增序号,可以建立一个辅助表包含两个字段日期,序号,自己生成流水号。如果表中无记录,初始化序号为0
    如果表中日期与当前日期不同,初始化序号为0
    select * from 辅助表 for update;
    取出序号+1作为当前序号并更更新表中序号
    commit;
    得到的序号再和日期组合成自己想要的格式