Ik wil direct achter elkaar de volgende code uitvoeren, maar dit werkt niet
Code:
$query = "DROP TABLE xfers";
$result = &doQuery($query);
$query = "CREATE TABLE xfers ($std_table) TYPE=MERGE UNION=($existing_tables)";
$result = &doQuery($query);
De error die ik krijg is als volgt:
Citaat:
DBD::mysql: t execute failed: Not unique table/alias: 'xfers' at ./ftpstats.pl line 252, <STDIN> line 927.
|
Het lijkt erop dat niet wordt geregistreerd dat de table wordt gedropt, maar dit is wel zo (na het uitvoeren van het script bestaat de table niet meer.)
Ik gebruik hiervoor DBI en DBD-mysql voor Perl
doQuery ziet er zo uit:
Code:
sub doQuery # Do a MySQL query
{
my ($query) = @_;
my $result = $db_conn->prepare($query);
if (!$result) {
warn("Preparation error:\n$query\n$DBI::errstr");
} else {
if (!($r = $result->execute)) {
warn("\nMySQL error, trying again in 5 secs\n\n");
sleep 5;
if (!($r = $result->execute)) {
warn("\nMySQL error on:\n$query\n" .
"Returned:\n$DBI::errstr\n\n");
return -1;
}
}
}
return $result;
}
Hoe los ik dit op? Wordt er een cache van bestaande tabels bijgehouden ofzo? En hoe zou ik die kunnen flushen?