java pg数据库事务回滚,postgresql – PSQLException:当前事务被中止,命令被忽略,直到事务块结束...

在使用Java和PostgreSQL时,如果在事务中执行的SQL查询失败,不进行rollback或commit操作,会导致'current transaction is aborted'错误。此错误表明在事务中的后续正确查询也会被忽略。解决方法包括:取消事务设置(connection.setAutoCommit(true))、在检测到错误时回滚事务、不忽略SQL异常,或者切换到如Oracle等其他数据库系统。
摘要由CSDN通过智能技术生成

我得到这个错误使用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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值