IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Importer directement des instructions MySQL en fichier texte dans MySQL


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    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

    La seule chose que je sais, c'est que je ne sais rien. (Socrate)

  2. #2
    Invité
    Invité(e)
    Par défaut
    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".

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1   fdupont@ibm.com   M   DUPONT   François   IBM
    Me confirmez-vous cela ?
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    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

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  6. #6
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    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 :
    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.

  7. #7
    Membre confirmé
    Homme Profil pro
    Chef de projet ERP
    Inscrit en
    Avril 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 68
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Importer des caractères d'un fichier texte dans un tableau
    Par Crepit dans le forum C#
    Réponses: 7
    Dernier message: 05/02/2014, 11h18
  2. insertion de fichier texte dans mysql
    Par houssamux dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/03/2008, 13h42
  3. insertion un fichier texte dans mysql
    Par houssamux dans le forum Requêtes
    Réponses: 9
    Dernier message: 27/03/2008, 13h31
  4. Réponses: 4
    Dernier message: 09/01/2008, 16h20
  5. probleme avec un import fichier texte dans mysql
    Par xodeax dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/07/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo