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

Administration MySQL Discussion :

Export Conditionnel, filtrer un Dump


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Par défaut Export Conditionnel, filtrer un Dump
    Salut à tous,

    Je cherche un moyen de faire un export conditionnel.

    Je bosse sur un configurateur qui va permettre de configurer des bornes, qui vont partir partout dans le monde. La structure de la BDD est la même sur les bornes que ds le configurateur. Je voudrais faire un export conditionnel, c'est à dire quelque chose comme "Export DATA where id_campaign=2"

    Je me demandais si faire une vue à partir de cette condition, puis de transformer cette vue en Base était une bonne idée, où si je me prends la tête et qu'il ya qqc de plus facile à mettre en oeuvre ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Par défaut
    Oui tu peux, en utilisant la clause "query" de l'outil export, comme suit :
    Si tu es sous Unix/Linux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exp scott/tiger tables=emp query=\"where empno \> 7500\" file=/tmp/test_query.dmp
    Si tu es sous Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exp scott/tiger tables=emp query="""where empno > 7500""" file=/tmp/test_query.dmp
    Attention aux caractères d'échappement suivant le système d'exploitation utilisé.

    Rachid A.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 331
    Par défaut
    Désolé je me suis trompé de forum

  4. #4
    Membre confirmé Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Par défaut
    scott tiger, c'est Oracle Non

    Avec Mysql, personne n'a une idée ?

    Je pré-sens que mon export vers une vue, c'est pas gagné ...

    En fait, sur le configurateur, on configure des campagnes, chacune ayant un id. Les bornes sont liées à une campagne. Lorsque les bornes vont partir, je voudrais pouvoir filtrer les données pour que chaque borne ne parte qu'avec les données de sa campagne, et pas toutes les données (sensible ...)

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Pourquoi pas en s'inspirant de la solution présentée dans la : http://mysql.developpez.com/faq/?pag...export_fichier ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre confirmé Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Par défaut
    Exactement !

    D'ailleurs au passage, bravo pour cette FAQ, toujours très utile.

    Voici comment j'ai procédé. Je travaille en PHP avec PDO.

    D'abord je construit un tableau, avec en clé, les tables, et en valeur, la clause WHERE, la fameuse condition du SQL conditionnel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $table_to_export = array(
    	"campaign" => "WHERE `id`='$campaignId';",
    	"dotation" => "WHERE `id_prize` IN ( SELECT `id` FROM `prize` WHERE `id_campaign`='$campaignId' );",
    	"prize" => "WHERE `id_campaign`='$campaignId';",
    	"series" => "WHERE `id_campaign`='$campaignId';",
    	"timetable" => "WHERE `id_campaign`='$campaignId';",
    	"users" => "",
    	"winningtime" => "WHERE `id_dotation` IN ( SELECT `id` FROM `dotation` WHERE `id_prize` IN ( SELECT `id` FROM `prize` WHERE `id_campaign`='$campaignId' ) );"
    );
    Je sais que les requetes imbriquées c pas top au nivo perf, mais c pas le probleme ici.

    Ensuite, je boucle sur le tablo, $c c mon objet PDO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach( $table_to_export as $table => $where )
    {
    	$c->query( "SELECT * INTO OUTFILE '".$backupFilePath.$table.'.sql'."' FROM `$table`".$where );
    }
    $backupFilePath, c'est le chemin vers les scripts sql à importer.

    On se retrouve donc avec autant de fichier sql que de table à exporter.

    Ensuite pour l'import :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOAD DATA INFILE 'backupFile' INTO TABLE $tableName";
    Et voilà.

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

Discussions similaires

  1. Dump exporté en oracle 10g express importé en 10g entreprise
    Par tresdouda dans le forum Administration
    Réponses: 7
    Dernier message: 03/04/2009, 11h53
  2. probléme script exportation dump
    Par gtraxx dans le forum Linux
    Réponses: 3
    Dernier message: 15/03/2009, 21h16
  3. Export dump Ora8 Win, import sous Unix
    Par loustic dans le forum Débuter
    Réponses: 4
    Dernier message: 20/05/2008, 11h58
  4. DUMP fichier d'export non valide
    Par jacques64 dans le forum Installation
    Réponses: 2
    Dernier message: 03/08/2007, 11h24
  5. Réponses: 10
    Dernier message: 27/03/2006, 14h40

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