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

Requêtes MySQL Discussion :

Comment copier le contenu d'une table vers une autre ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut Comment copier le contenu d'une table vers une autre ?
    Bonjour à tous,

    Je dois copier les données d'une table, vers une autre table. J'ai lu le Faq http://mysql.developpez.com/faq/?pag...ION_copie_base mais mon soucis est que les 2 tables se trouvent sur 2 serveurs différents et que j'exécute tout cela à partir d'un troisième poste.

    Que dois je changer dans le code suivant pour que cela fonctionne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table_destination SELECT ... FROM table_source
    Voici les données
    Table à copier:
    ip: 66.0.0.1
    utisateur: moi1
    mot de passe: toi1
    base de donnée : bd1
    table : table1
    Table de destination
    ip: 67.0.0.2
    utisateur: moi2
    mot de passe: toi2
    base de donnée : bd2
    table : table2

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Par défaut
    Je ne suis pas spécialiste , mais l'autre jour, j'ai copié le contenu d'une table dans une autre mais ce contenu était tronqué (il manquait du texte dans le contenu copié dans la table de destination), je ne sais pas si la plateforme est importante dans l'histoire.. si tu exportes via un fichier texte et que tu l'importes ensuite ailleurs, mais bon...si cela peut t'aider http://www.developpez.net/forums/d76...e/#post4410455. bon courage

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Le mieux est d'exporter les données sous forme de requêtes SQL INSERT puis de les réinjecter dans l'autre base.

    Il y a aussi la solution en utilisant SELECT INTO OUTFILE puis LOAD DATA INFILE sur l'autre serveur. C'est plus rapide si tu as beaucoup de lignes à transférer.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    ... je ne peux utiliser LOAD DATA INFILE car ... je ne peux déposer de fichier sur le serveur MYSQL.

    J'ai tout de même fait mes petites recherche. Sur le site de MYSQL on parle comment accélérer la commande INSERT . http://dev.mysql.com/doc/refman/5.0/...ert-speed.html

    On y parle de "utilisez les valeurs multiples de la commande INSERT."
    Malheureusement je ne vois trop comment faire.
    Voici une partie des 214000 lignes que je dois envoyer vers le serveur MYSQL. Comment faire pour utiliser ces fameuses commandes multiple?

    Merci

    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
    INSERT INTO `engine` VALUES (7370, 157, 1);
    INSERT INTO `engine` VALUES (7370, 158, 1);
    INSERT INTO `engine` VALUES (7370, 159, 1);
    INSERT INTO `engine` VALUES (7370, 160, 1);
    INSERT INTO `engine` VALUES (7370, 161, 1);
    INSERT INTO `engine` VALUES (7370, 162, 1);
    INSERT INTO `engine` VALUES (7370, 163, 1);
    INSERT INTO `engine` VALUES (7370, 133, 1);
    INSERT INTO `engine` VALUES (7371, 1, 1);
    INSERT INTO `engine` VALUES (7371, 69, 1);
    INSERT INTO `engine` VALUES (7371, 70, 1);
    INSERT INTO `engine` VALUES (7371, 71, 1);
    INSERT INTO `engine` VALUES (7371, 72, 1);
    INSERT INTO `engine` VALUES (7371, 73, 2);
    INSERT INTO `engine` VALUES (7371, 74, 1);
    INSERT INTO `engine` VALUES (7371, 75, 1);
    INSERT INTO `engine` VALUES (7371, 76, 1);
    INSERT INTO `engine` VALUES (7371, 77, 1);
    INSERT INTO `engine` VALUES (7371, 78, 1);
    INSERT INTO `engine` VALUES (7371, 79, 1);
    INSERT INTO `engine` VALUES (7371, 122, 4);
    INSERT INTO `engine` VALUES (7371, 123, 3);
    INSERT INTO `engine` VALUES (7371, 124, 3);
    INSERT INTO `engine` VALUES (7371, 125, 2);
    INSERT INTO `engine` VALUES (7371, 82, 1);
    INSERT INTO `engine` VALUES (7371, 83, 1);
    INSERT INTO `engine` VALUES (7371, 84, 1);
    INSERT INTO `engine` VALUES (7371, 134, 1);
    INSERT INTO `engine` VALUES (7371, 135, 1);
    INSERT INTO `engine` VALUES (7371, 136, 1);
    INSERT INTO `engine` VALUES (7371, 139, 1);
    INSERT INTO `engine` VALUES (7371, 140, 1);
    INSERT INTO `engine` VALUES (7371, 141, 1);
    INSERT INTO `engine` VALUES (7371, 142, 1);
    INSERT INTO `engine` VALUES (7371, 143, 1);
    INSERT INTO `engine` VALUES (7371, 126, 4);
    INSERT INTO `engine` VALUES (7371, 127, 4);
    INSERT INTO `engine` VALUES (7371, 144, 1);
    INSERT INTO `engine` VALUES (7371, 128, 1);
    INSERT INTO `engine` VALUES (7371, 129, 2);
    INSERT INTO `engine` VALUES (7371, 119, 5);
    INSERT INTO `engine` VALUES (7371, 120, 5);
    INSERT INTO `engine` VALUES (7371, 130, 3);
    INSERT INTO `engine` VALUES (7371, 131, 1);
    INSERT INTO `engine` VALUES (7371, 146, 1);
    INSERT INTO `engine` VALUES (7371, 147, 1);
    INSERT INTO `engine` VALUES (7371, 148, 1);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    Je me répond à moi même (et oui, je m'aime bien).

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

    => ma sous question : quel est la taille maximum? puis inserer mes 214000 lignes en 1 requete?

    Rien de tel que le test pour vérifier ce que je dis

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Je crains que cela ne dépasse la longueur maxi d'une requête SQL.

    Comment t'adresses-tu aux deux serveurs ?
    - Commande mysql en console ?
    - phpMyAdmin ?
    - programme php ou autre ?

    C'est une opération à faire une seule fois ou à répéter périodiquement par un programme automatique ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Comment copier une table d'une BD vers une autre BD?
    Par js8bleu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/10/2009, 09h13
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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