PostgreSQL数据库如果不存在则插入,存在则更新

今天在做接手别人项目的时候,有这样的需求,往数据库中插入数据的时候,要满足下面:
1、如果数据库存在一条记录,则将新插入的值,作为更新
2、如果没有这样一条记录,则新增。

以一个字段为判断是否存在。

INSERT INTO test_postgre(id,name,InputTime,age)
VALUES('1','postgre','2018-01-10 22:00:00',24)
ON conflict(id) 
DO UPDATE SET name = 'postgreOk', InputTime ='2018-02-22 12:00:00'
百度看到上面这样的写法,这里做一个记录。以防后续需要。

也说明一下,如果不存在则会新增,VALUES里面的值,如果存在,则会更新name和InputTime字段,当然如果你需要改age,也可以继续在后面加,或者只写age;这个conflict(id)中的id是判断是否存在记录的依据。

参考:http://www.cnblogs.com/ShaYeBlog/p/6427616.html