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 !
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 !
dans le client texte :
en ligne de commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 source c:/test.sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mysql -utonlogin -ptonmotdepasse -htonserveur tabasecible <c:/test.sql
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 !???
non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part source c:\monFichier.sql
ou c'est une erreur de syntaxe dans tes insert ??
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).
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
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.
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
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).Envoyé par NPortmann
mysql ? le client ligne de commande de base à la fiabilité obsolueEnvoyé par NPortmann
Edit: grillé
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:
Ensuite, je peux charger ce fichier comme ceci (depuis MySQL QB):...
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"
...
Et, là, c'est super rapide !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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';
la doc MySQL précise que le LOAD DATA INFILE est environ
20 fois + rapide qu'un paquet de SELECT.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager