У меня есть скрипт 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 могут иметь лучшую идею.