YYYYMMXXXX这是一个表中的字段YYYY是年份,MM月份,XXXX是自动增长的ID号如:2009050001 2009050002.。2009050999 这样的字段怎么设计啊。TRANACNT SQL怎么写??????????????

解决方案 »

  1.   

    借宝地打广告 JAVA群:52365382  欢迎高手 相互学习 公共进步  
    在前进的道路上我们并肩携手
      

  2.   


    /*
    在sql中可用+进行字符串连接. 
    在oracle中是用||进行字符串连接
    testname 为表
    idseq为一序列
    */insert into testname values (to_char(sysdate , 'YYYYmm')||idseq.nextval)
      

  3.   

    我的测试表设计只有一个字段   类型varchar2(30)
      

  4.   

    2楼兄弟回答是似欠考虑,idseq.nextval的值会一直增长下去,而楼主的意思好像XXXX每个月开始重新从0000开始,此其一;其二,如果idseq.nextval一致增长,并且到了10000的时候,楼主的字段格式YYYYMMXXXX中后面的XXXX无法装载10000这个信息。为此,兄弟建议楼主将YYYYMMXXXX拆分成两个字段,即YYYYMM和XXXX,其中XXXX这个字段作为整型字段,这样做的好处是:
    1. 可以很容易获得某个月的XXXX,而不需要去组合YYYYMM;
    2. 可以为两个字段建立联合索引(或者主键),联合索引尽管比单字段索引效率略低,但还是很好的,而且
    3. 该表的数据量不会很大,因为按照XXXX来说,一个月最大的产生的记录数不会超过9999,一年产生记录数不会超过12w,即便需要保存10年的数据,也不会超过120w,这对联合索引来说不存在任何性能方面的问题。