Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Prog] Perl: MySQL database opnieuw maken (https://forum.scholieren.com/showthread.php?t=1003314)

Orion 03-11-2004 21:51

Perl: Mysql database droppen en meteen weer createn
 
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::st 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?

Manuzhai 04-11-2004 12:01

Waarom gebruik je Perl? :P

Orion 04-11-2004 12:24

Citaat:

Manuzhai schreef op 04-11-2004 @ 13:01 :
Waarom gebruik je Perl? :P
Ten eerste omdat dit geen webapplicatie is. Ten tweede omdat het een standaard script is, geschreven in Perl.

eddie 04-11-2004 12:28

werkt het aanmaken van een andere tabel wel?

iamcj 04-11-2004 13:24

Mischien eerst renamen als omwegoplossing

Orion 04-11-2004 15:41

Het bleek een heel stom foutje te zijn.

Nieuwere MySQL versies geven blijkbaar quotes om opsommingen van beschikbare databases en daar was dit script niet op voorbereid.

Een paar regexp's aanpassen voldeed.


Bedankt iig! :)

Manuzhai 04-11-2004 19:58

Citaat:

Orion schreef op 04-11-2004 @ 13:24 :
Ten eerste omdat dit geen webapplicatie is. Ten tweede omdat het een standaard script is, geschreven in Perl.
Oh, ja, ik ben tegenwoordig van het Python. :)


Alle tijden zijn GMT +1. Het is nu 15:04.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.