Bonjour à tous
Je souhaiterais exécuter directement plusieurs fichiers .sql dans un script perl
Voici un extrait de code : (je sais que de nombreuses optimisations peuvent etre faite mais j'aimerais que cela fonctionne avant d'optimiser)
ReInitBase.sql : fichier servant à vider la base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 use warnings; use strict; use Time::Piece; use Spreadsheet::ParseExcel; use DBI; use DBD::mysql; print "(o)RP(o)\n\n"; my $dbh = DBI->connect('DBI:mysql:eBase4', 'root', 'root' ) || die "Could not connect to database: $DBI::errstr"; my $sth; my $MySqlQuery; # ----------------------------------- # Drop database and create an other one # ----------------------------------- my $File = "ReInitBase.sql"; my $FilePath = "../Sql/Base/${File}"; $MySqlQuery = $FilePath; print $MySqlQuery, "\n"; $sth = $dbh->prepare($MySqlQuery); $sth->execute(); # ----------------------------------- # File Info Insertion # ----------------------------------- $File = "InsertFileInfo.sql"; $FilePath = "../Sql/Data/${File}"; $MySqlQuery = $FilePath; print $MySqlQuery, "\n"; $sth = $dbh->prepare($MySqlQuery); $sth->execute(); # ----------------------------------- # Network Insertion # ----------------------------------- $File = "NetworkInsertions.sql"; $FilePath = "../Sql/Data/${File}"; $MySqlQuery = $FilePath; print $MySqlQuery, "\n"; $sth = $dbh->prepare($MySqlQuery); $sth->execute(); $sth->finish(); $dbh->disconnect();
InsertFileInfo.sql & AfdxNetworkInsertions.sql : insertions dans la base
Le problème est le suivant : les fichiers .sql ne sont pas exécutés (aucune insertions dans la base et la base n'est pas vidée)
Je cherche à exécuter directement le .sql comme ça je peux jongler entre mon script perl et MYSQL workbench au niveau de me requête.
Merci de votre aide par avance
Partager