try
{
Connection conn = ... MySQL connection ...;
conn.setAutoCommit(false); // transaction starts
.... do something ....
}
catch (MySQLException e)
{
try {
conn.rollback();
}
catch (Exception e)
{
// What happens now?
}
}
对于MySQL服务器(InnoDB引擎),如果事务回滚(rollback())失败会发生什么?(例如,当回滚(rollback())正在执行时网络中断等情况)这是否意味着数据库保持损坏状态,或者MySQL服务器有没有从“未完成”的回滚中恢复的方法?
.commit()
后才会被提交。希望您正在使用 MySQL,如果可以的话,请切换到 PostgreSQL。 - fge