我试图通过逐步调试一些Java代码来作为PostgreSQL数据库的客户端。我发现正在由客户端代码执行的查询未返回预期结果。为了了解代码为什么失败,我希望能够手动运行查询(例如,在pgAdmin中或从psql命令行工具中)以查看数据库的内容。
上述问题是我要调试的Java代码正在未提交的事务中执行。当我将查询粘贴到pgAdmin中时,它以完全不同的方式失败,因为它无法看到与调试代码相同的数据快照。
在pgAdmin或psql中是否可以从事务内部的角度运行查询?我知道这种事情通常是被禁止的(出于与事务隔离有关的充分理由),但这对于调试非常有用。
请注意,我并不是在寻求其他方法来调试我的情况(例如,通过启用JDBC日志记录和观察记录的语句)。我知道其他的实现方式-但是它们都不太方便。因此,我不认为该问题应该作为How to enable logging for SQL statements when using JDBC的副本来结束(实际上,我知道比使用JDBC日志记录调试情况更方便的选择,即使我的问题的答案是“不,这不可能。”