psycopg2:语句 return 代码

psycopg2: statement return codes

我有一个在 Python 中执行的 Postgres 查询,就像这样

cursor.execute('INSERT INTO my_data(id, val, bonus) VALUES (1, 2, 3) ON CONFLICT (id) DO UPDATE SET val = ex.val;')

我希望能够判断是否正在发生新的插入,以便在调用方决定一些稍后的逻辑。除了在尝试 upsert 之前进行额外阅读之外,有没有办法做到这一点?例如,检查return code/message是否触发了冲突

执行后,检查cursor.rowcount以获得受影响的行数。

如果为 1,则插入了一行。如果为 0,则更新现有行。