我们在ACCESS,MYSQL,MSSQL中都可以设定自动递增的字段,而oracle并没有直接提供这样的功能的字段,不知道各位是怎么样解决的。现在,建表的时候用到很多类似于这种:CREATE SEQUENCE SEQNEWSID INCREMENT BY 1;插入数据的时候用:INSERT INTO fun VALUES ( SEQNEWSID.NextVal, '系统卸载');如果我有20个表,每个表都需要递增字段,那岂不是需要20多条上面的语句,而插入数据的时候也比较复杂了,有时候自己都会搞不清陀。请问大家有什么样的解决方案来解决这样的问题。
先谢谢大家了。

解决方案 »

  1.   

    就是用sequence,没有自动增长的
      

  2.   

    没有什么很好的方法。可以用sequence + trigger
    也差不多。
      

  3.   

    我有一个方法,或许对你有些帮助,求出记录数,然后+1为新ID,参考代码如下:            conn = getConnection();
                conn.setAutoCommit(false);
                String sql = "select max(news_type_id) + 1 from t_news_type";
                pstmt = conn.prepareStatement(sql);
                ResultSet rs = pstmt.executeQuery();
                String news_type_id = "";
                if(rs.next())
                    news_type_id = rs.getString(1);
                rs.close();
                if(news_type_id == null)
                    news_type_id = "1";
      

  4.   

    看来ORACLE只能用你SEQUENCE的方法,或者max(ID)+1的方法
      

  5.   

    oracle只能通过sequences或者另外建立表来实现了,没有自动增加的列!