我得到这个错误使用Java和postgresql在表上执行插入。我将说明如何重现这个错误:
org.postgresql.util.PsqlException: ERROR:
current transaction is aborted,commands ignored until end of transaction block
概要:
得到此错误的原因是因为您输入了一个事务,并且您的一个SQL查询失败,并且您忽略了该失败并忽略它。但这还不够,所以你使用同样的连接,使用SAME TRANSACTION来运行另一个查询。第二个正确形成的查询会抛出异常,因为您正在使用损坏的事务来执行其他工作。 Postgresql默认阻止你这样做。
我使用:Postgresql 9.1.6 on x86_64-redhat-linux-gnu,由gcc(GCC)编译4.7.2 20120921(Red Hat 4.7.2-2),64位“。
我的postgresql驱动是:postgresql-9.2-1000.jdbc4.jar
使用java版本:Java 1.7
这里是表的create语句来说明异常:
CREATE TABLE moobar
(
myval INT
);
Java程序导致错误:
public void postgresql_insert()
{
try
{
connection.setAutoCommit(false); //start of transaction.
Statement statement = connectio