如何在postgresql中使用json populate记录更新?

时间:2017-10-11 18:18:03

标签: sql json postgresql

在Postgresql中,如何将JSON_POPULATE_RECORD用于更新查询?

1 个答案:

答案 0 :(得分:3)

我们可以使用带有JSON_POPULATE_RECORD的UPDATE查询下面是示例表名作为测试的示例,并且有三列a,b,c,数据类型字符各不相同。

update test set("a","b","c")=((select a,b,c from json_populate_record(NULL::test,'{"a":"first column","b":"second column","c":"third column"}')))

您也可以将UPSERT用于此查询。

insert into test select * from json_populate_record(NULL::test, '{"a":"first column","b":"column","c":"column"}') ON CONFLICT ON CONSTRAINT a_PKey DO UPDATE SET("a","b","c")=((select a,b,c from json_populate_record(NULL::test,'{"a":"first column","b":"second column","c":"third column"}'))) ;

上面的查询将插入,如果主键冲突或约束冲突,则记录将被更新。