不同于SQL Server的是,中插入数据的时候,没有自增列或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须在Oracle中指定一个标识列,或者说是一个序列。具体方法如下:
-
- 先创建一个序列,具体方法为:CREATE SEQUENCE "数据库名"."序列名" INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
- 要么写一个触发器,在insert之前(参考我的上一篇文章),要么就这样直接在Java代码中写:a)先写出一条SQL语句查询出即将的序列值,就是如果下一次插入,标识列的值会是多少。 long index = 0; String sql = "select 序列名.nextval from dual"; PreparedStatement statement = connection.prepareStatement(sql); rs = statement.executeQuery(); while(rs.next){ index = rs.getLong(1);; }b)然后在进行新的数据插入的时候,直接把查出来的序列的值赋进去就OK了 sql = "insert into TB_USERINFO value(USERID,USERNAME,LOGNAME,PASSWORD,DEPARTID) values(?,?,?,?,?)";这样一来,就简单的实现了Oracle数据库的标识列的插入值。