要写存储过程?太复杂了吧,有没有简单的方法,在代码里实现累加,因为表里有个字段自动生成一个ID号,A000是另外一个字段,A000去加那个ID号
比如表里ID号1,A000去加1,由此类推

解决方案 »

  1.   

    select max(id) from 表名
    得到最大值自动加1.
      

  2.   

    现在想知道的是A009,A010,A011是怎样加的
      

  3.   

    这是我以前写的一个类似的东东,使用字符和数字,从小到大为0,1,2,3,4,5,6
    ,7,8,9,a,b,...,x,y,z,10,........不知道有没有用      private String createNewDocId( String existMaxDocId){
              StringBuffer docidStore = new StringBuffer();
              boolean needAddOne = true;
              char ch;
              int ascValue;          //从低位到高位分别取出单个字符
              for( int i = existMaxDocId.length() - 1; i >= 0; i --){
                  //得到当前字符
                  ch = existMaxDocId.charAt(i);
                  //得到这个字符的ascii码
                  ascValue = Character.getNumericValue( ch );              //如果需要增加1,将ascii加1
                  if( needAddOne ){
                      ascValue += 1;                  //如果增加之后ascValue为36,则将ascValue置为0,
                      //同时将needAddOne置为true,标识要进为
                      //这里为什么是36,是因为26个字母+ 10个数字
                      if( ascValue == 36 ){
                          ascValue = 0;
                          needAddOne = true;
                      }
                      else
                          needAddOne = false;
                  }              //ascValue转换成字符保存
                  docidStore.append( Character.forDigit(ascValue,36) );          }          //反转过来,并转换成字符串
              return docidStore.reverse().toString();
          }