Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 15/04/2007, 13h02   #1
Nouveau Membre du Club
 
Homme
Inscription : avril 2007
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 45
Points : 26
Points : 26
Par défaut Importer directement des instructions MySQL en fichier texte dans MySQL



Après avoir consulté souvent ce site, je me suis décidé à m'inscrire pour participer aux forums. De formation scientifique mais non informatique, je m'intéresse depuis quelques années aux différents langages de programmation dont SQL.

Voici ma question :
Est-il possible d'insérer des données dans des tables nouvellement créées dans MySQL en important directement les instructions stockées dans un fichier .txt ? Ou faut-il forcément taper une par une ces instructions derrière l'invite mysql> , vu qu'en plus le copier-coller n'existe pas.
Merci

Citation:
La seule chose que je sais, c'est que je ne sais rien. (Socrate)
lightstring4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 19h15   #2
Inactif
 
Inscription : mars 2002
Messages : 1 295
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2002
Messages : 1 295
Points : 1 345
Points : 1 345
Tu peux importer un fichier comportant une ligne par ligne de bdd, avec les colonnes séparées par (le plus couramment) une tabulation.
Ou utiliser un fichier créer par mysqldump, qui contiendra des insert apropriés.
Ou créer ton fichier toi même, et utiliser "source".
Florian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 21h39   #3
Nouveau Membre du Club
 
Homme
Inscription : avril 2007
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 45
Points : 26
Points : 26
Tout d'abord merci de cette réponse rapide. Pour mes débuts, c'est sympa

En y repensant à l'aide de la notice MySQL, j'ai vu ce que je savais déjà que l'on peut insérer à l'aide de l'instruction 'LOAD DATA LOCAL INFILE ...' des données présentées en fichier txt avec tabulation.
Là où ça a dû m'échapper, c'est que je n'ai pas regardé plus loin que ce que je disposais à savoir une commande du style :
Code :
1
2
INSERT INTO T_UTILISATEUR_USR (USR_ID, USR_MAIL, USR_TITRE, USR_NOM, USR_PRENOM, USR_ORGANISATION)
       VALUES (1, 'fdupont@ibm.com', 'M.', 'DUPONT', 'François', 'IBM')
Je voulais la copier direct dans MySQL, mais je crois comprendre qu'il faut convertir ces données sous la forme txt suivante :
Code :
1   fdupont@ibm.com   M   DUPONT   François   IBM
Me confirmez-vous cela ?
Merci
lightstring4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 08h45   #4
Inactif
 
Inscription : mars 2002
Messages : 1 295
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2002
Messages : 1 295
Points : 1 345
Points : 1 345
Le premier code est à éxécuter depuis mysql, ou a placer dans un fichier de script à éxécuter depuis mysql avec la commande "source".
Le 2eme est à importer dans une table avec mysqlimport.
Après à toi de voir ce qui est le plus pratique pour toi
Florian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 18h03   #5
Nouveau Membre du Club
 
Homme
Inscription : avril 2007
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 45
Points : 26
Points : 26
Par défaut Commande "source" + invite shell>

Bonjour, j'ai été un peu pris ces derniers temps, et je n'ai pas pu continuer sur le point discuté.

J'ai bien compris le rôle de la commande "source" mais :
1) je ne suis pas sûr de la syntaxe car selon la console MySQL et le manuel de référence j'hésite entre :
Code :
1
2
3
4
mysql> source (nom_fichier.sql);
mysql> source (nom_fichier);
mysql> source nom_fichier.sql;
mysql> source nom_fichier;
2) où placer le script .sql, que j'ai réussi à créer malgré tout ? J'ai observé l'arborescence des fichiers dans C:\Program Files\MySQL\MySQL Server 5.0 et j'ai essayé de le mettre un peu partout dans : \data, \MySQL Server 5.0, même dans C:\. Ca marchait pas

-------------------------------

Question supplémentaire : j'arrive pas à comprendre la différence entre les invites mysql> et shell>. La doc n'est pas très claire ... enfin surtout pour moi.

Merci et désolé de ces questions de bas niveau débutant.
lightstring4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 11h36   #6
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
Le ';' est facultatif.

Ensuite deux solutions : Soit on met le fichier dans le répertoire courant au lancement de mysql.exe (s'il a été lancé via le menu "démarrer" ce n'est pas évident et peut être un répertoire que l'on ne veut pas toucher), soit on utilise le chemin complet et là plus de question métaphysique.

Genre :
Citation:
source C:\Documents and Settings\moi\Bureau\mondump
Et le bon point est que mysql.exe accepte les ' ' et autred '\' sans broncher.


Question bonus :
La différence entre les deux invites est que dans un cas ce que l'on tape est interprété par un shell (normalement cmd.exe sous windows XP) qui n'a que faire d'un "SELECT mes_trucs [...]", dans l'autre ce sera interprété par mysql.exe (qui lui ne comprend rien aux "cd", "dir" et autres). L'invite indique quel programme est à l'écoute.

Si la documentation donne des commandes à entrer à l'invite "shell>", c'est qu'elles sont à passer à un shell quelconque. Sous XP c'est cmd.exe (accessible entre autres par "Démarrer>Accessoire>Invite de commandes"), mais suivant le système d'exploitation ce peut être autre chose alors la documentation doit rester le plus générique possible.
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 16h39   #7
Nouveau Membre du Club
 
Homme
Inscription : avril 2007
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 45
Points : 26
Points : 26
Ca y est, j'ai réussi.

MAIS il fallait quand même mettre l'extension .sql dans l'instruction sinon ça marche pas.
Et pour le shell j'ai compris. Moi je travaille directement avec l'invite mysql> car j'ouvre directement la fenêtre de ligne de commande MySQL.

Merci et à bientôt peut-être ... pour de nouvelles questions plus intéressantes
lightstring4 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 02h41.


 
 
 
 
Partenaires

Hébergement Web