我有此代码:
try {
insertRowInDatabase();
} catch(SQLIntegrityConstraintViolationException e) {
//row already inserted. Do nothing.
} catch(Exception other) {
//we should retry to insert row
retry();
}
是否有可能在Oracle数据库中插入行会引发SQLIntegrityConstraintViolationException,但是数据库中最终将没有该行。
答案 0 :(得分:0)
有可能吗?当然。如果存在外键约束或表上的自定义触发器会阻止插入怎么办?没有模式,很难说。
答案 1 :(得分:0)
据我了解,您需要PL / SQL的MERGE
,类似于mysql的ON DUPLICATE KEY UPDATE...
您可以看到MERGE
示例here