sub runSomeQueries
{
my $query = "select LocationID, LocationName from Location";
my $sth = $dbh->prepare($query);
if ( $sth->execute() )
{
while (my $data = $sth->fetchrow_hashref )
{
runSomeSubQueries($$data{LocationID});
}
}
}
sub runSomeSubQueries
{
my $locationID = shift;
my $query = "Delete from Location where LocationID = ?";
my $sth = $dbh->prepare($query);
$sth->execute($locationID);
}
####
my $dbh_primary = DBI->connect(XXXX);
my $dbh_backup = DBI->connect(YYYY);
runSomeQueries($dbh_primary);
runSomeQueries($dbh_backup);
####
my $dbh = DBI->connect(XXXX);
my $dbh_tx = DBI->connect(XXXX, AutoCommit => 0);
# non-transactioned
runSomeQueries($dbh);
runSomeSubQueries($dbh);
# if you need to transaction a bunch of queries together
runSomeQueries($dbh_tx);
runSomeSubQueries($dbh_tx);
if ( $OK )
{
$dbh->commit();
}
else
{
$dbh->rollback();
}