我通过一条SQL的插入语句往数据库表里面插入的一条记录。

时间:2022-02-20 21:44:21
在通过insert into 与句往数据库插入一条数据的时候
报错

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into PSCancelTList(PkgCode,FrontTranCode,FrontID,FrontDate,FrontSerial,AcpDate,SndBankCode,MsgID,SRFlag,SysLevel,SysCode,MsgType,PrimAcpDate,PrimSndBankCode,PrimMsgID,PrimPkgCode,PrimSRFlag) VALUES('307',?,?,?,?,?,?,?,?,'2',?,'1',?,?,?,?,?)]; ORA-00001: 违反唯一约束条件 (EDZF.PSCANCELTLIST_IDX2)
; nested exception is java.sql.SQLException: ORA-00001: 违反唯一约束条件 (EDZF.PSCANCELTLIST_IDX2)

请问高手如何解决 。

6 个解决方案

#1


说明你插入的数据导致某个唯一索引出现了重复

#2


我怎么样才知道是哪个索引重复了呢 如果找到了怎么处理这个索引

#3


查看下你的EDZF.PSCANCELTLIST_IDX2是对应谁加的,建议插入数据之前,先去查询下要插入的这条数据中,该字段在数据库中是否有重复,有的话就提示不要插入数据了,不然肯定崩掉

#4


引用楼主 healthestar 的回复:
在通过insert into 与句往数据库插入一条数据的时候
报错

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into PSCancelTList(PkgCode,FrontTranCode,FrontID,FrontDate,FrontSe……


你這樣要插入成功肯定要在另外2個表裏插入數據
在插入的2個數據的時候要先先查

這樣如果表與表之間約束很多的時候情況下 自己寫SQL巨麻煩!!!

#5


首先你得看你的数据库哪里设置了唯一约束。然后再看插入的那条数据哪里需要注意,防止重复。

#6


你在插入之前要根据插入数据的某个字段(表的主键)查询一下表里边是否主键重复了,如果重复了肯定要报异常的。

#1


说明你插入的数据导致某个唯一索引出现了重复

#2


我怎么样才知道是哪个索引重复了呢 如果找到了怎么处理这个索引

#3


查看下你的EDZF.PSCANCELTLIST_IDX2是对应谁加的,建议插入数据之前,先去查询下要插入的这条数据中,该字段在数据库中是否有重复,有的话就提示不要插入数据了,不然肯定崩掉

#4


引用楼主 healthestar 的回复:
在通过insert into 与句往数据库插入一条数据的时候
报错

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into PSCancelTList(PkgCode,FrontTranCode,FrontID,FrontDate,FrontSe……


你這樣要插入成功肯定要在另外2個表裏插入數據
在插入的2個數據的時候要先先查

這樣如果表與表之間約束很多的時候情況下 自己寫SQL巨麻煩!!!

#5


首先你得看你的数据库哪里设置了唯一约束。然后再看插入的那条数据哪里需要注意,防止重复。

#6


你在插入之前要根据插入数据的某个字段(表的主键)查询一下表里边是否主键重复了,如果重复了肯定要报异常的。