我有一个 Postgres 查询,我像这样在 Python 中执行
cursor.execute('INSERT INTO my_data(id, val, bonus) VALUES (1, 2, 3) ON CONFLICT (id) DO UPDATE SET val = ex.val;')
我希望能够判断是否发生了新的插入,以便在调用端决定一些稍后的逻辑。除了在尝试 upsert 之前进行额外阅读之外,有没有办法做到这一点?例如,检查是否触发了冲突的返回码/消息
最佳答案
执行后,检查 cursor.rowcount
以获得受影响的行数。
如果为 1,则插入一行。如果为 0,则更新现有行。
关于postgresql - psycopg2:语句返回码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758574/