Как сделать 2 разных соединения с базой данных одновременно в Perl DBI? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть скрипт perl, который подключается к базам данных 2 postgres и выполняет некоторые запросы.Для лучшей практики я не использую auto commit.У меня есть одна транзакция, которая должна быть запущена на обоих подключениях к базе данных.Как мне commit их сразу, чем делать по отдельности.

my $dbh1 = new DBConnection1();
my $dbh2 = new DBConnection2();
eval {
    my $query1 = "<SQL>";
    my $query2 = "<SQL>";

    my $stmt1 = $dbh1->prepare($query1);
    my $stmt2 = $dbh2->prepare($query2);

    $stmt1->execute();
    $stmt2->execute();

    $stmt1->finish;
    $stmt2->finish;
};
if($@) {
    $dbh1->rollback;
    $dbh2->rollback;
}else{
    $dbh1->commit;
<<<<<<----------------- Assume app crash at this point.
    $dbh2->commit;
}

$dbh1->disconnect;
$dbh2->disconnect;

Я не вижу решения для этого, поэтому надеюсь, что некоторые эксперты по Perl DBI могут иметь лучшую идею.

...