我之前是先全部插入数据,然后根据唯一标识来去重,只保留max(rowid),但是听说这不能确定能留在最新的一条数据,而且如果数据库数据比较多的话,去重比较慢。有想过用merge into,先创建一个临时表,吧数据先插入到临时表,然后和目标表作merge into操作,但是有个前提是新插入的一批数据必须保证唯一标识是唯一的,不然会报无法从源表找到稳定行的错误,所以这个方法我没有测试过。因为现在是我那个表数据量不多,而且导入的时候数据量也不大,所以是每一条数据都去比较数据库的数据,有则更新,无则插入,但明显这个效率不高,如果数据量大的话。
不知道有没有人能给出更好的方案,谢谢。