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 :

Nom de base en variable


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut Nom de base en variable
    Bonjour,

    Je suis en train d'écrire un script de migration entre 2 bases de données mysql hébergées sur le même serveur. La 2eme base de données est une évolution de la première, certains champs sont différents ou dans un ordre différent.

    Ce sont une succession de requètes comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO bdd1.`table1`
    	SELECT * 
    	FROM `bdd2`.`table1`;
    Il y a environ 100 tables à migrer. Je souhaite pouvoir réutiliser le script plus tard. J'aimerais utiliser une variable pour stocker le nom des bases de données, afin qu'il n'y ai que ces variables à modifier entre 2 évolutions du script, plutot que de changer les requètes une par une.

    J'ai essayé quelque chose de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SET @dest = '`bdd2`';
    SET @source = '`bdd1`';
     
    INSERT INTO {$dest}.`table1`
    	SELECT * 
    	FROM {$source}.`table1`;
    Mais celà ne fonctionne pas. Existe-t-il un moyen de le faire ?...

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour @Mogwaï,

    Tu ne veux pas passer par du Php ?
    Ce serait plus simple !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    En effet je pourrais, mais j'aimerais beaucoup faire cette opération uniquement en SQL, sans utiliser PHP... ceci surtout pour me forcer à apprendre de nouvelles choses du SQL, car je connais déjà très bien PHP...

    PS : j'ai modifié le titre du sujet, c'est bien le nom de la base que je souhaite avoir en variable

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Salut,
    Quelle est ta version de mysql?
    Si tu es en mysql5, regarde du côté de information_schema et des procédures stockées.

  5. #5
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    La procédure stockée permet en effet de faire ce que je souhaite.

    Dommage qu'il n'y ait pas plus simple !

  6. #6
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    utilisez le SQL dynamique

    genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set @sql = "select maColonne from matable"
    PREPARE stmt FROM @sql ;
    EXECUTE stmt ;
    DEALLOCATE PREPARE stmt ;
    END
    Dans l'esprit c'est ca, apres a vous de modifier pour arriver a vos fins

    Bon courage

Discussions similaires

  1. Restaurer une base avec un autre nom de base de donnée
    Par dimdidi dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 19/08/2005, 10h11
  2. caractère spéciaux dans nom de base
    Par slefevre01 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/08/2005, 17h41
  3. Noms des bases de données
    Par abdou.sahraoui dans le forum Administration
    Réponses: 8
    Dernier message: 01/09/2004, 15h21
  4. Réponses: 2
    Dernier message: 20/08/2004, 17h10
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21

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