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 :

Changer le nom d'une colonne


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 107
    Points : 56
    Points
    56
    Par défaut Changer le nom d'une colonne
    Bonjour,

    En fait j'ai utilisé la commande ALTER pour renommer les clés primaires (id) pour mes différentes tables de ma base de données en procédant comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE matable CHANGE id matable_id bigint(20);
    La clé est renommée mais quand on tape la commande

    , on y trouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matable_id     bigint(20)      NO(pour null)     PRI (pour key)      0(pour Default)
        id             bigint(20)      YES(pour null)

    Conséquence : Je n'arrive plus à afficher les différents champs de mes tables sur mon interface graphique.
    je me demande s'il faut chercher à supprimer simplement les id ou faire quoi pour que mon interface puisse marcher.
    nb: c'est dans le cadre du mapping que j'ai voulu renommer ces clés.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans la doc MySQL, je vois ceci :
    CHANGE [COLUMN] old_col_name column_definition
    Il semble qu'il faille redéfinir entièrement la colonne.

    Fais l'opération dans phpMyAdmin et regarde la requête qui en résulte.
    Je viens de le faire et voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER  TABLE  `test`  CHANGE  `id`  `id_test` SMALLINT( 5  )  UNSIGNED NOT  NULL  AUTO_INCREMENT
    Toute la colonne est redéfinie.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Effectivement cette commande marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER  TABLE  `test`  CHANGE  `id`  `id_test` SMALLINT( 5  )  UNSIGNED NOT  NULL
    Mais j'aimerai bien résoudre l'incident causé par la première commande que j'ai utilisée. Pour cela je ré-explique un peu pour plus de précision .
    J'avais par exemple la table matable avec les champs id, nom, prenom. Pour changer le id en matable_id, j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE matable CHANGE id matable_id bigint(20)
    et j'ai retrouvé ma table avec les champs matable_id, nom, prenom , id. Donc au lieu de 3 champs j'ai eu 4.
    Conséquence : je parviens bien à insérer des valeurs pour nom et prenom à partir de mon interface graphique mais matable_id prend la valeur zéro(0) et id prend une valeur différente de zéro(0).
    Ainsi , je voudrais savoir comment corriger cela sans supprimer la table et reprendre sa création?

    J'utilise Mysql Query Browser version 1.2.12


    Merci d'avance.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Suggestion :
    Tu supprimes la colonne matable_id qui ne te sert actuellement à rien puis tu repasse la commande ALTER TABLE complète en t'inspirant du modèle que j'ai donné.

    Encore une fois, le plus simple est de le faire dans phpMyADMIN qui se débrouille tout seul pour la syntaxe.

    Ensuite bien sûr, si ce n'est déjà fait, il faut modifier le code de ton interface pour qu'il utilise la colonne matable_id à la place de id.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Bonjour,
    En fait la base de données que j'utilise contient beaucoup de tables et certaines sont reliées par les clés primaires, donc je veux oublier le changement de nom.
    J'avais déjà modifier le nom dans mon code. Maintenant j'ai supprimé le champ matable_id , le programme marche avec id mais id n'est plus considérée comme clé primaire; Comment le rendre clé primaire??
    Et comment on fait pour retrouver une telle commande avec PhpMyAdmin ?


    Merci.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par maparè Voir le message
    Comment le rendre clé primaire??
    BEn dans phpMyAdmin, il n'y a qu'une case à cocher !
    Dans la partie Action, à droite de l'écran quand tu affiches la structure de la table.

    Et comment on fait pour retrouver une telle commande avec PhpMyAdmin ?
    Quelle commande ?
    La requête issue de l'opération faite avec l'interface ?
    Juste au dessous des onglets quand phpMyAdmin t'affiche le résultat de ce que tu viens de faire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Bonsoir,

    phpMyAdmin est vraiment .

    En utilisant phpMyAdmin j'ai trouvé que pour rendre rendre id en clé primaire on tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE matable ADD PRIMARY KEY(`id`)
    mais j'ai eu cette erreur : Duplicate entry '0' for key 1

    Nb: J'ai commencé par supprimer user_id en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER matable DROP user_id
    .

    D'autre part j'ai envisagé de recréer la table mais à cause d'un champ d'index MUL je doute parce que même avec phpMyAdmin j'ai pas pu trouver la syntaxe pour çà( pour primary et unique pas de soucis).

    Merci pour votre aide, mais çà m'embête toujours.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Mon problème est résolu,
    en fait j'avais la valeur nulle pour tous les enregistrements de ma table.
    J'ai vidé d'abord ma table, puis effectuer un enregistrement avant de retaper ma commande.
    Big à Cinephil.

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

Discussions similaires

  1. SQL-Server changer le nom d'une colonne dans une table .
    Par silset dans le forum Développement
    Réponses: 2
    Dernier message: 31/10/2009, 23h34
  2. Changer le nom d'une colonne
    Par oursquetaire dans le forum SQL
    Réponses: 1
    Dernier message: 27/06/2008, 10h03
  3. Changer le nom d'une colonne
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2007, 11h57
  4. changer le nom d'une colonne en mysql a traver VB
    Par foufidou dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/08/2006, 18h04
  5. [sql 2005]: changer le nom d'une colonne dans un table
    Par TheLittle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2006, 15h29

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