是否可以从psycopg2或sqlalchemy为PostgreSQL发出 "VACUUM ANALYZE <tablename>"?[英] Is it possible to issue a &quot;VACUUM ANALYZE <tablename>&quot; from psycopg2 or sqlalchemy for PostgreSQL?

本文是小编为大家收集整理的关于是否可以从psycopg2或sqlalchemy为PostgreSQL发出 "VACUUM ANALYZE <tablename>"?的处理方法,想解了是否可以从psycopg2或sqlalchemy为PostgreSQL发出 "VACUUM ANALYZE <tablename>"?的问题怎么解决?是否可以从psycopg2或sqlalchemy为PostgreSQL发出 "VACUUM ANALYZE <tablename>"?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

嗯,这个问题几乎概括了它.我的数据库活动非常需要更新,我想以编程方式发出真空分析.但是,我收到一条错误消息,指出无法在事务中执行查询.还有其他方法吗?

推荐答案

这是 Python DB-API 的一个缺陷:它会为你启动一个事务.它不应该那样做;是否以及何时开始事务应由程序员决定.像这样的低级核心 API 不应该照看开发人员并做诸如在我们背后启动交易之类的事情.我们是大男孩——我们可以自己开始交易,谢谢.

使用 psycopg2,您可以通过 API 扩展禁用这种不幸的行为:运行 connection.autocommit = True.不幸的是,没有标准的 API,因此您必须依赖非标准扩展来发出必须在事务之外执行的命令.

没有一种语言是没有缺点的,这是 Python 的一种.我以前也被这个咬过.

本文地址:https://www.itbaoku.cn/post/1763807.html