欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

[]批量插入数据serial8类型主键重复的有关问题

更新时间: 2014-01-05 02:19:55 责任编辑: Author_N1

 

[求助]批量插入数据serial8类型主键重复的问题
最近遇到一个informix数据库的问题:数据库的一张表的主键id是serial8类型的,表是行锁模式(建表的时候有lock mode row;)。该字段的值在数据插入的时候,系统自动生成。因为放入这张表的数据量比较大,我们采用批量插入的方式对其进行数据插入(PreparedStatement psm ,先把一定量数据psm.addBatch(); 然后 psm.executeBatch()执行一次)。  
  在这种方式下,单线程没有问题,因为我们需要把实时和批量数据分开进行插入,所以有实时数据和批量数据有两个线程进行插入数据,在这种情况下压力测试,发现有少量的主键重复的情况。目前怀疑的地方有两点:
  一: serial8自动生成的时候有问题。 
  二: 批量插入的方式(psm.executeBatch())有问题。
  下面是出错的日志:
  java.sql.BatchUpdateException: Unique constraint (eibs1.u134_72) violated.
  java.sql.BatchUpdateException: Unique constraint (eibs1.u134_72) violated.
  java.sql.BatchUpdateException: Unique constraint (eibs1.u134_72) violated.
   
  没有找到比较有效的资料,还请各位大侠多多指教。谢谢!


--参考方法--
1, 加入mt_id,value 为0 试试
2,有没有触发器?有没有begin tran/lock一类的代码
3,serial8 没有bigserial好用
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:19:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8570/
本文WWW.DOC100.NET DOC100.NET版权所有。