python - 显式检查 SQL INSERT 操作是否成功是不必要的?
问题描述
我正在使用 Python 与使用 psycopg2 的 Postgres DBMS 交谈。
假设如果 INSERT 返回而不引发异常,那么 INSERT 实际上确实在数据库中存储了一些新的东西,是否安全?
现在,我一直在检查数据库游标的 'rowcount' 属性,如果它是 0 则意味着 INSERT 失败。但是,我开始认为这没有必要。
解决方案
默认情况下postgres
将返回None
成功插入:
cursor.execute
- 方法返回None
。如果执行了查询,则可以使用 fetch*() 方法检索返回的值。
http://initd.org/psycopg/docs/cursor.html
如果您想了解有关插入的信息,可以使用一个简单/有效的选项RETURNING
(它采用与 a 相同的选项SELECT
):
INSERT INTO ... RETURNING id
推荐阅读
- javascript - 通过jquery ajax更新行后停止页面刷新
- reactjs - 将分组的 React 组件转换为打字稿
- javascript - Discord.js 无法检查“lastMessage.content”
- java - 使用 Spring Boot 对 Rest 服务进行基本身份验证
- php - 如何从 __DIR__ 以外的目录执行 file_get_contents()?
- java - 为什么 flink 1.10.1 在使用 FsStateBackend 崩溃重启后没有加载存储的状态
- reactjs - 将反应应用程序发布到 iis 时遇到问题 - AggregateException & InvalidOperationException
- vue.js - 在 Nuxt 中使用来自 axios 插件的 vue-sweetalert2
- microsoft-graph-api - Graph API - 检查用户是否具有对 Office 365 Planner 任务的完全访问权限
- javascript - 如何将浮点数的舍入限制为仅其“小数部分”而不影响其“整个部分”