我正在尝试调试应用程序(在 PostgreSQL 下)并遇到以下错误:“当前事务已中止,命令被忽略”。
据我所知,“事务”只是一个与底层数据库连接相关的概念。
如果连接具有自动提交“false”,您可以通过相同的语句执行查询,只要它没有失败。在这种情况下,您应该回滚。
如果自动提交为“真”,那么只要您的所有查询都被认为是原子的,这并不重要。
使用 auto commit false,即使是一个简单的 PostgreSQL,我也会收到上述错误
select * from foo
失败了,这让我问,在哪个 SQLException(s) 下是一个被认为无效的“事务”,应该回滚还是不用于另一个查询?
使用 MacOS 10.5、Java 1.5.0_16、PostgreSQL 8.3 和 JDBC 驱动程序 8.1-407.jdbc3