我正在尝试遵循此处另一篇文章中的批量更新插入示例:
update_stmt = insert_stmt.on_conflict_do_update(
index_elements=[MyTable.id],
set_={'test_value': insert_stmt.excluded.test_value}
)
我的列是 {'email': 'someemail', 'firstname': 'firstname', 'lastname': 'lastname'}
现在,上面的例子似乎会更新我给它的任何值,所以在我的例子中,我可以通过执行 set_={'firstname': insert_stmt.excluded.test_value}
来更新“名字”。
我不明白的是如何只更新插入语句实际提供的列?
说我插入 {'email': 'someemail', 'firstname': 'firstname', 'lastname': 'lastname'}
然后我尝试插入 {'email': 'someemail', 'firstname': 'newname'}
我希望它更新原始行,然后读取 {'email': 'someemail', 'firstname': 'newname', 'lastname': 'lastname'}
我怎样才能做到这一点?