擅长:python、mysql、java
<p>经过更多的搜索,我发现了psycopg2连接对象的隔离级别属性。结果是,将其更改为<code>0</code>会将您移出事务块。将上述类的vacuum方法更改为以下方法可以解决此问题。注意,我还将隔离级别设置回以前的水平,以防万一(默认情况下似乎是<code>1</code>)。</p>
<pre><code>def vacuum(self):
old_isolation_level = self.conn.isolation_level
self.conn.set_isolation_level(0)
query = "VACUUM FULL"
self._doQuery(query)
self.conn.set_isolation_level(old_isolation_level)
</code></pre>
<p><a href="http://www.devx.com/opensource/Article/29071" rel="noreferrer">This article</a>(在该页的末尾)简要解释了此上下文中的隔离级别。</p>