首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在并发进程中使用postgresql的正确方法

在并发进程中使用postgresql的正确方法
EN

Stack Overflow用户
提问于 2015-07-30 23:31:23
回答 1查看 601关注 0票数 0

我正在使用psycopg2从Python访问postgresql表。我是从几个过程中做这件事的。我一直在使用序列化事务隔离来维护数据的完整性。我在更新/插入时检查是否存在TransactionRollback异常,然后再试一次,直到进程通过为止。在执行此操作时,我遇到了许多错误(以current transaction is aborted, commands ignored until end of transaction block的形式)。超过一半的数据已成功写入数据库,其余数据由于上述错误(发生在所有试图写入的进程中)而失败。

我是否以正确的方式使用Python和psycopg2来实现postgresql并发/事务隔离?另一种方式:使用postgresql序列化事务隔离,同时从多个独立进程访问表是否可以接受?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-31 00:29:13

根据猜测,您将捕获连接异常,但不会在基础的ROLLBACK连接上发出conn.rollback()或PostgreSQL。因此,连接仍然有一个打开的中止事务。

需要理解的关键是,捕获psycopg2异常不会在底层连接上发出回滚。它被PostgreSQL标记为中止,并且在 on the connection之前无法处理新的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31735765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档