postgresql - psycopg2:语句返回码

标签 postgresql psycopg2 libpq

我有一个 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/

相关文章:

postgresql - 如何在 PostgreSQL 中更改 "REFERENCES"?

database - PostgreSQL - fatal error : Ident authentication failed for user "myuser"

python - postgres - 无法使用 psycopg2 删除数据库

c++ - VC 2010 上带 SSL 的 libpq

c - Debian 中库 libpq 的问题

sql - postgresql 同时更新两个表

postgresql - 从 CASE 语句中设置 PostgreSQL 变量

python - 使用 web.py 的 web.database 时应该如何防止滥用?

python - psycopg2 实际上没有插入数据