insert on conflict合并更新即存在则更新,不存在则写入。在oracle中可以通过merge语法来实现同样的功能,不过这种语法有个缺陷就是:某些情况下存在并不一定要更新,因为可能更新的数据是一样的,这就完全没必要了。在oracle中可能影响并不大,但是在pg中,由于pg是多版本的,更新会产生新的TUPLE版本,如果这种没必要的更新很多,只会给数据库带来额外的负担同时影响性能。
–创建测试表:
bill=# create table tbl(
bill(# c1 int,
bill(# c2 int,
bill(# c3 int,
bill(# c4 int,
bill(# c5 timestamp,
bill(# unique (c1,c2)
bill(