我有一张表格,当处理记录时,我要么获得完整的记录,否则只获取要更新的列。
我想编写一个查询来处理更新,但只更新非空值的列。例如,
现有的表格:
1 | John Doe | USA
2 | Jane Doe | UK
输入记录:
(3, Kate Bill, Canada)
(2, null, USA)
我希望将第一条记录插入,并仅在第二条记录中发生“键重复冲突”时更新最后一列。我不确定如何使用execute_values方法调用编写此代码。
execute_values(cursor, "INSERT INTO user_data\
(id, name, country) VALUES %s ON CONFLICT DO UPDATE SET \
<how to only set non null values here>", vendor_records)
我正在使用psycopg2执行这个命令。