Oracle数据库设置了后置触发器,新增或修改时候会记录修改日志,在报表端设置了‘未修改不更新’,但是从外部导入重复数据时候(比如我把原表导出excel再导入),还是会产生修改这个动作,触发了数据库的后置触发器。请教一下如何在外部导入数据存在重复数据的时候,不进行修改这个动作呢。
触发器的修改逻辑改为:当所有列组合的哈希值前后不一致的时候,再进行修改,否则返回。
导入后导出,在导入,那就是修改了,还是会提交,只是主键一样,安主键更新,你看出来一眼该数据而已
你可以两次提交,第二次提交应该不会触发器触发的
导入就相当于全表填入表格,然后点提交再进行入库操作你需要在提交的时候拦截掉那些未修改数据,‘未修改不更新’不适用于这种情况。建议用提交条件结合sql函数去筛选掉
后置触发器的触发条件可以调整一下,如增加一个updatetime字段,保留“未修改不更新”选项,这样如果数据有更新,updatetime就会变化,以此为条件。