Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2007, 00h55   #1
En attente de confirmation mail
 
Inscription : février 2007
Messages : 134
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 134
Points : 27
Points : 27
Par défaut lancer un fichier .sql sous mysql

Salut,

question bete d'un debutant en mysql:
au lieu de taper des dizaines de lignes sous mysql, comment faire pour lancer un fichier test.sql afin d'executer toutes les requetes d'un seul coup !!!

merci d'avance !
D.Mounir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 05h37   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
dans le client texte :
Code :
1
2
 
source c:/test.sql
en ligne de commande :
Code :
1
2
mysql -utonlogin -ptonmotdepasse -htonserveur tabasecible <c:/test.sql
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h26   #3
Nouveau Membre du Club
 
Nicolas Portmann
Inscription : janvier 2004
Messages : 81
Détails du profil
Informations personnelles :
Nom : Nicolas Portmann

Informations forums :
Inscription : janvier 2004
Messages : 81
Points : 33
Points : 33
Bonjour,

J'ai la même question.

En effet, j'ai des gros fichiers qui contiennent des ordres d'insert (certains ont plus 20'000 insert) et j'aimerai les executer via mon client MySQL "MySQL QueryBrowser". Si je tape c:/monfichier, j'ai une erreur de syntaxe !???
NPortmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h37   #4
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
Code :
source c:\monFichier.sql
non ?

ou c'est une erreur de syntaxe dans tes insert ??
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h42   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
source n'est pas un ordre SQL, mais une commande spécifique du client texte. Sauf erreur, elle n'est pas dispo dans MySQL QB (qui est une grosse bouse de toute façon).
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h43   #6
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
dans mysql Query browser

tu fais fichier
->open script
tu selectionnes ton fichier sql
il se load
et voila
->run
-> EXECUTE
fin

ya pas a etre informaticien pour ça
pour réparer ton script
oui
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h20   #7
Nouveau Membre du Club
 
Nicolas Portmann
Inscription : janvier 2004
Messages : 81
Détails du profil
Informations personnelles :
Nom : Nicolas Portmann

Informations forums :
Inscription : janvier 2004
Messages : 81
Points : 33
Points : 33
Avec MySQL QB, en ouvrant le fichier et en l'executant, ça ne fonctionne pas pour les gros fichiers (erreur: Got a packet bigger than 'max_allowed_packet'.
Sinon, si j'essai via PhpMyAdmin sur mon hebergeur, via la fonctionnalité "Exécuter une ou des requêtes sur la base .." en spécifiant le fichier, ça ne fonctionne pas non plus pour les gros fichiers.

Est-ce que qqun peut me proposer un client Mysql qui me permetterai de faire ce genre de chose?


Merci d'avance.
NPortmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h49   #8
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
si t'as Mysql

alors tu as un "command line client"

et la c simple et efficace alors je te conseil de passer par ça

bha oui il faut taper des lignes de commandes

mais ça va pas chercher loin
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h50   #9
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Citation:
Envoyé par NPortmann
Avec MySQL QB, en ouvrant le fichier et en l'executant, ça ne fonctionne pas pour les gros fichiers (erreur: Got a packet bigger than 'max_allowed_packet'.
max_allowed_packet est la taille maximum d'un paquet, en sachant qu'une requête doit tenir en un seul. Or, typiquement, les dump contiennent des INSERT à ralonge qui ne passent pas si max_allowed_packet est trop petit. C'est un paramètre du serveur (et aussi du client je crois, les deux devant être définis assez haut).

Citation:
Envoyé par NPortmann
Est-ce que qqun peut me proposer un client Mysql qui me permetterai de faire ce genre de chose?
mysql ? le client ligne de commande de base à la fiabilité obsolue
Edit: grillé
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 15h18   #10
Nouveau Membre du Club
 
Nicolas Portmann
Inscription : janvier 2004
Messages : 81
Détails du profil
Informations personnelles :
Nom : Nicolas Portmann

Informations forums :
Inscription : janvier 2004
Messages : 81
Points : 33
Points : 33
Avec "Toad for MySQL 2.0 Freeware" ça marche mais c'est super lent (environ 20 insertions à la seconde, donc pour les tables ou je dois insérer 50000 enregistrements, je peux aller boire un gros gros café) !

Donc, voici ma solution:

Au lieu de faire un script sql qui contient mes insert, je fais un fichier csv:
Exemple:
Citation:
...
2,82,1,1,1,1,1,1,1,"10.11.06",1,"TOTO","TOTO","10.11.06"
2,82,1,1,1,1,1,1,2,"10.11.06",1,"TOTO","TOTO","10.11.06"
2,82,1,1,1,1,1,1,3,"10.11.06",1,"TOTO","TOTO","10.11.06"
2,82,1,1,1,1,1,1,4,"10.11.06",1,"TOTO","TOTO","10.11.06"
...
Ensuite, je peux charger ce fichier comme ceci (depuis MySQL QB):

Code :
1
2
 
LOAD DATA LOCAL INFILE 'F:/oracle_mysql/peuple/peuple_ora_lig_diffusions.txt' INTO TABLE `ora_lig_diffusions` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n';
Et, là, c'est super rapide !!!
NPortmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 17h24   #11
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
la doc MySQL précise que le LOAD DATA INFILE est environ
20 fois + rapide qu'un paquet de SELECT.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web