系统中有5张表调用同一个序列
在每次执行insert语句的时候
int result = "select xxx_seq.nextval from dual";
Connection conn = null;
Statement sta = null;
ResultSet rs = null;
try {
conn = DB.getConn();
sta = conn.createStatement();
rs = sta.executeQuery(sql);
while (rs.next()) {
result = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(conn, sta, rs);
}
insert into table_xxx (t_id,t_name) values (result,'xxx');
每执行插入100-200条数据就会爆出主键t_id重复的错误 谁能分析一下原因?
result是每次执行插入的时候都会重新查一下序列产生新的 result
在每次执行insert语句的时候
int result = "select xxx_seq.nextval from dual";
Connection conn = null;
Statement sta = null;
ResultSet rs = null;
try {
conn = DB.getConn();
sta = conn.createStatement();
rs = sta.executeQuery(sql);
while (rs.next()) {
result = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(conn, sta, rs);
}
insert into table_xxx (t_id,t_name) values (result,'xxx');
每执行插入100-200条数据就会爆出主键t_id重复的错误 谁能分析一下原因?
result是每次执行插入的时候都会重新查一下序列产生新的 result
解决方案 »
- 一个数据库的面试题!
- 急请达人帮忙,odp.net中如何将一个datatabel作为参数传递给存储过程?
- 安装Oracle 时 没有去叫勾导致账户被锁如何解决
- 2个至强1.6gCUP 4G内存的专用ORACLE数据库服务器,SGA和其他参数怎么分配(或优化)?
- 又遇一道棘手问题,列转行问题,在线等,急,急,急。。。。。。
- oracle stream无法传递
- oracle 的RAC工作原理如何?谁能说详细一点吗
- 如何用dbca建立一个最小最小的数据库?能多小?
- oracle中的clob问题
- 为什么oracle中有些sql查询语句在where后加 tablename.fieldname like '%' 后查询效率会提高几倍?
- 求测试SQL
- SQL语句直接执行快,在程序中慢
int result 怎么初始化值是"select xxx_seq.nextval from dual"啊(可能是你贴代码是贴错了)
最主要的是insert into table_xxx (t_id,t_name) values (result,'xxx');这个操作
必须是异常没有发生时,才会会执行的操作……
如果异常发生了,result 的结果是初始化值,可能一次异常发生插入信息不会出错……
但是第二次肯定会报主键t_id重复的错误