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

MySQL Discussion :

renommer tous les noms de table et champ en minuscule


Sujet :

MySQL

  1. #1
    Nouveau membre du Club Avatar de yanchasp
    Inscrit en
    Décembre 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 66
    Points : 26
    Points
    26
    Par défaut renommer tous les noms de table et champ en minuscule
    Bonsoir,
    Voila j'ai une base de donnée ou j'ai nommé les nom de table et les champs en majuscule, malheureusement je souhaites tout modifier en minuscules, les noms de table et les champs.
    Je souhaiterais trouver une manip plus simple que de tout faire à la mano.
    Merci d'avance.
    Mes créations de montages photos et vidéos sur mon blog:
    http://yanchasp.blogspot.com/

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    pourquoi as-tu besoin de faire ça ? quel est ton moteur de stockage ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Nouveau membre du Club Avatar de yanchasp
    Inscrit en
    Décembre 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 66
    Points : 26
    Points
    26
    Par défaut
    C'est dans Mysql et j'ai besoin de faire ca, car on m'a envoyé un dev avec le nom de toutes les tables et de tous les champs en minuscules (qui est mieux pour une requete d'ailleurs) et j'avais crée ma base tout en majuscule.
    Donc je souhaite modifier ca assez simplement coté mysql.
    Du style si une requete permet de faire ca.

    Ou par exemple, si je pouvais faire un export de ma base avec tous les noms des champs et des tables en minuscule, puis ensuite je supprime ma base et réimporte la base en minusule, ce serait bien.
    Mes créations de montages photos et vidéos sur mon blog:
    http://yanchasp.blogspot.com/

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Pour la question sur les moteurs de stockage, cf http://mysql.developpez.com/faq/?pag...ORMATS_general.

    Pour connaître le moteur de stockage, fais un SHOW CREATE TABLE sur l'une de tes tables, et regarde ce qu'il y a après ENGINE =.

    Il y a une variable système qui gère cette histoire de casse, mais son comportement dépend d'une part du moteur de stockage, de l'autre de l'OS (sur quel OS est installé ton MySQL ?).
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

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

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Déjà, pour les noms de tables, le plus simple est de tout importer dans un mysql windows qui met tout par défaut en minuscules. Sinon on peut utiliser une requête pour pondre le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT CONCAT('RENAME TABLE `', TABLE_NAME, '` TO `', LOWER(TABLE_NAME), '`;')
    FROM information_schema.TABLES
    WHERE TABLE_SCHEMA='mabase';
    (quelque chose comme ça, je n'ai pas testé)

  6. #6
    Nouveau membre du Club Avatar de yanchasp
    Inscrit en
    Décembre 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 66
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Pour la question sur les moteurs de stockage, cf http://mysql.developpez.com/faq/?pag...ORMATS_general.

    Pour connaître le moteur de stockage, fais un SHOW CREATE TABLE sur l'une de tes tables, et regarde ce qu'il y a après ENGINE =.

    Il y a une variable système qui gère cette histoire de casse, mais son comportement dépend d'une part du moteur de stockage, de l'autre de l'OS (sur quel OS est installé ton MySQL ?).
    je viens de faire la requete et voici ce que j'obtiens:
    ENGINE=MyISAM
    faut que je me renseigne par contre pour savoir sur quel OS est intallé mysql car ce n'est pas moi qui l'a fait.
    Mes créations de montages photos et vidéos sur mon blog:
    http://yanchasp.blogspot.com/

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Donne-moi juste le résultat de la requête suivante, ça me dira tout ce que je veux savoir sur l'OS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW VARIABLES LIKE '%case%'
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

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

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Voilà pour les colonnes :
    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
     
    SELECT CONCAT('ALTER TABLE `',
           TABLE_NAME,
           '` ',
           GROUP_CONCAT(' CHANGE COLUMN `',
                        COLUMN_NAME,
                        '` `',
                        LOWER(COLUMN_NAME),
                        '` ',
                        COLUMN_TYPE,
                        IF(IS_NULLABLE='YES', '', ' NOT NULL')),
           ';')
    FROM information_schema.COLUMNS
    WHERE TABLE_SCHEMA='mabase'
    GROUP BY TABLE_NAME;
    Le problème est qu'il faut refaire leurs définitions pour les renommer... Je ne suis pas certain qu'il n'y aura pas de pertes dans les définitions

    Au fond, faire un dump et passer sed (ou autre) pour changer les noms serait peut-être aussi bien.

  9. #9
    Nouveau membre du Club Avatar de yanchasp
    Inscrit en
    Décembre 2005
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 66
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Donne-moi juste le résultat de la requête suivante, ça me dira tout ce que je veux savoir sur l'OS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW VARIABLES LIKE '%case%'
    Voici ce que j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Variable_name 	Value
    lower_case_file_system 	OFF
    lower_case_table_names 	0
    Déjà, pour les noms de tables, le plus simple est de tout importer dans un mysql windows qui met tout par défaut en minuscules. Sinon on peut utiliser une requête pour pondre le script :
    Code :


    SELECT CONCAT('RENAME TABLE `', TABLE_NAME, '` TO `', LOWER(TABLE_NAME), '`;')
    FROM information_schema.TABLES
    WHERE TABLE_SCHEMA='mabase';

    (quelque chose comme ça, je n'ai pas testé)
    Ca marche, donc pour l'instant j'ai reussi à mettre en minuscule les noms des tables.
    Il ne me reste plus qu'à faire les noms des champs.
    Mes créations de montages photos et vidéos sur mon blog:
    http://yanchasp.blogspot.com/

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    si tu peux faire modifier ton my.ini, il faudrait mettre lower_case_table_names à 1 et redémarrer MySQL. De cette façon, les noms de table seront toujours en minuscules.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/12/2010, 14h47
  2. [ORACLE XE]Noms de table et champs en minuscule
    Par Takumi dans le forum Débuter
    Réponses: 2
    Dernier message: 14/07/2009, 01h37
  3. [DB2]Obtenir tous les noms des champs d'une table
    Par ptr83 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/11/2006, 09h31
  4. Récupération de tous les noms de tables d'une bdd paradox
    Par izidor dans le forum Bases de données
    Réponses: 6
    Dernier message: 23/02/2006, 17h41
  5. Réponses: 2
    Dernier message: 03/02/2005, 13h21

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