我有一个像这样的UPSERT操作: INSERT INTO people (SELECT * FROM people_update)
ON CONFLICT (name,surname)inserted' end,name,surname,age,street,city,postal; (name,surname)是一个复合主键,与'people‘表相比,'people_update’表包含额外的和更改过的行我的问题是
我需要Postgres中的UPSERT功能。由于Postgres本机不支持此功能,所以我编写了一个函数(尝试更新,如果没有更新行,则插入)CREATE FUNCTION merge_db(key INT, data TEXT)这个select语句(以参数化的形式)和一个对象数组是我传递给batchUpdate方法JDBCTemplate的内容。
我使用的是"upsert",我需要知道它是否创建了一个新行。, 'value2' where not exists (select 1 from mytable where (col2='value2'));
如果我在Postgres中运行它,它将返回第二条语句受影响的行数即,如果执行插入,则为"1行受影响“,如果执行更新,则为"0行受影