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 :

échange données entre 2 bases


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut échange données entre 2 bases
    Bonjour à tous
    voilà j'ai un ptit souci
    j'aimerais récupérer certaines occurences d'une table d'une pour les coller vers une d'une autre base possédant la même structure.
    mais le problème vient du fait que les occurences que je voudrais insérer sont déjà existantes dans la seconde base (mais possèdent des données obsolètes)
    du coup lorsque je fais mon INSERT INTO il ne me déplace aucune occurence
    comment pourrais-je faire pour qu'il me remplace les occurences déjà existantes ?


    merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    pourquoi ne pas vider ta seconde table si elle contient des données obsoletes avant de insérer les nouvelles valeurs?

  3. #3
    Membre éclairé Avatar de jp_rennes
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut
    une piste peut être pour toi :
    Si vous spécifiez la clause ON DUPLICATE KEY UPDATE dans le INSERT (nouveau en MySQL 4.1.0), et qu'une ligne insérée engendre un doublon pour une clé PRIMARY ou UNIQUE, une commande UPDATE sera faite à la place de l'insertion. Par exemple, les commandes ont le même effet :

    mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
    -> ON DUPLICATE KEY UPDATE c=c+1;

    mysql> UPDATE table SET c=c+1 WHERE a=1;

    Note : si la colonne b est aussi unique, la commande UPDATE sera réécrite telle que

    mysql> UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;

  4. #4
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Bonsoir,
    en quelle version de mysql êtes-vous ? Avez-vous lu la documentation sur replace ? Cela convient peut-être à votre besoin ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut
    merci c'est bien le REPLACE qui me convient le mieux

    par contre j'aurais un autre ti souci en fait j'aimerais rajouter des occurences d'une table d'une base vers une autre table d'une autre base seulement sans conserver la clé primaire afin qu'elles puissent être incréementées automatiquement dans ma deuxième base.
    J'ai tenté de passer par un
    INSERT INTO nom_base_dest.table_dest SELECT nom_des_champs FROM base_exp.table_exp WHERE ...
    mais j'obtiens une erreur

    ps: j'utilise MySQL version 3.23


    merci d'avance

  6. #6
    Membre éprouvé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 934
    Par défaut
    Bonjour,
    Citation Envoyé par mysticman59
    merci c'est bien le REPLACE qui me convient le mieux

    par contre j'aurais un autre ti souci en fait j'aimerais rajouter des occurences d'une table d'une base vers une autre table d'une autre base seulement sans conserver la clé primaire afin qu'elles puissent être incréementées automatiquement dans ma deuxième base.
    J'ai tenté de passer par un
    INSERT INTO nom_base_dest.table_dest SELECT nom_des_champs FROM base_exp.table_exp WHERE ...
    mais j'obtiens une erreur

    ps: j'utilise MySQL version 3.23


    merci d'avance
    Quelle erreur ?

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

Discussions similaires

  1. Transfert de données entre deux bases
    Par RTDanjou dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/03/2007, 15h53
  2. différence de donnés entre 2 bases
    Par JauB dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/06/2006, 10h44
  3. Changement Des données entre deux bases
    Par Chakib dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2006, 10h59
  4. Réponses: 5
    Dernier message: 30/11/2005, 16h41
  5. Réponses: 2
    Dernier message: 21/10/2005, 17h02

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