日期:2014-05-17  浏览次数:22105 次

违反唯一约束条件
create unique index RMBFX_RATESOURCE_IDX on RMBFX_RATESOURCE (SERIALNO, CYCODE);
为什么我插入的SERIALNO, CYCODE两字段是不重复,我是先去表里查询。我的方法是 用新增的这两个字段去数据表查询,如果有则不新增,反之则新增,判断我都写好的,为何还是报


Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/erayt/easipay/initsys/dao/oracle/SpotRate.xml.  
--- The error occurred while applying a parameter map.  
--- Check the SpotRateDao.insertSpotRate-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: java.sql.SQLException: ORA-00001: 违反唯一约束条件 (EASIPAY.RMBFX_RATESOURCE_IDX)

求各位大神 帮帮
------解决方案--------------------
引用
判断我都写好的,为何还是报错



原因很简单,要么判断写错了,要么数据传错了,因为数据库在这种简单问题上出错的可能性为 0
------解决方案--------------------
这就是你插入数据的问题了,是和以前数据库中存在的数据冲突了。
------解决方案--------------------
把判断是否存在的sql 单独放数据库里面运行下  手动模拟测试

------解决方案--------------------
你是不是检查时是按条检查,插入时确是批量的,这样应该是你的批量数据中本身存在重复数据