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 :

Recréer un champ ID a posteriori


Sujet :

MySQL

  1. #1
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut Recréer un champ ID a posteriori
    Bonjour.

    J'interviens sur une db que je n'ai pas faite et qui n'a ni champ indexé ni ID, encore moins autoincrémenté.

    Comment puis-je faire pour recréer à posteriori un champ id et le remplir "à la main" via un bout de script php par exemple ?

    Je suppose qu'il me sera ensuite possible de l'indexer... Une fois qu'il sera opérationnel...

    Ca a l'air idiot et pourtant je sèche bien là-dessus...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  2. #2
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Pour l'ajout du champ "ID"

    ALTER TABLE Nom_de_la_table
    ADD Nom_de_la_colonne Type_de_donnees

    Pour la modification :

    ALTER TABLE Nom_de_la_table
    MODIFY Nom_de_la_colonne Type_de_donnees

    En espérant t'avoir aidé.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu peux regarder dans la doc de mysql....

    http://dev.mysql.com/doc/refman/5.0/fr/alter-table.html


    Pour ajouter une nouvelle colonne AUTO_INCREMENT nommée c :

    mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (c);

    Notez que nous avons indexé c, car les colonnes AUTO_INCREMENT doivent être indexées, et que nous définissons aussi c en tant que NOT NULL, car les colonnes indexées ne peuvent être NULL.

    Quand vous ajoutez une colonne AUTO_INCREMENT, les valeurs de la colonne sont remplies automatiquement

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Merci Mygale !

    Fabuleux... Trois jours que je galérais...

    Le truc avec le manuel, c'est qu'il faut déjà avoir une idée de la syntaxe pour trouver ce qu'on cherche...

    Vive ce forum de gens sérieux !
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Encore un petit détail et même si mon problème de fond est résolu...

    Ma db va se résumer en tout et pour tout à quelques dizaines de milliers maximum de fichiers. Les gens pourront écraser leur fichier précédent, et j'aurais aimé quand ils font cela, conserver le même id...

    Du coup, l'auto-increment ne s'applique-t-il pas ici ?

    Ou bien est-ce que je loupe un attribut à cette fonction ?

    J'ai bien lu tout ton lien Mygale, mais pas trouvé la réponse à ça.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ma db va se résumer en tout et pour tout à quelques dizaines de milliers maximum de fichiers.
    Je ne comprends pas très bien.

    pourrais-tu fournir un peu plus de détail à ce sujet?
    pourrais-tu également fournir la structure de tes tables et les expliquer.

  7. #7
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    En fait, il n'y a qu'une table.

    Et en gros, elle a les champs suivants (je t'épargne la totalité qui est de 25 champs remplis par des chefs qui souhaitent récupérer ce qu'ils ont entré la dernière fois, et tout cela finit par alimenter un pdf)...

    champ1: nom du chef
    champ2: nom du fichier
    champ3: mot du chef
    champ4: horaires du service
    champ5: nom de l'adjoint etc. etc. etc.

    et en dernier

    champ25: index autoincrémenté non null

    Donc la question sur le principe est la suivante : Cela vous choque-t-il de mettre un index autoincrémenté non nul pour une db aussi sommaire et en sachant que la db ne dépassera pas les 20 000 fichiers et que l'on écrase à chaque validation d'un chef le nom du fichier... J'avoue qu'à priori il me semble plus logique de récupérer le même numéro d'ID du coup...

    Mais bon, dites moi si je me trompe, sur le fond, ça ne 'consomme' pas plus de place sur la db, c'est juste le numéro d'index qui augmente sans cesse ?

    Question subsidiaire... Si je choisis de garder le même ID pour un nom de fichier dont j'écrase toutes les autres données... comment que je fais ?

    Vous l'aurez compris, je suis une grande débutante en sql...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. Recréer une valeur perdue sur un champ NumAuto
    Par Fifi69 dans le forum Modélisation
    Réponses: 5
    Dernier message: 07/12/2010, 15h36
  2. [VB6] [Datareport] définir un champ
    Par ckankonvahou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2002, 11h16
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  4. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48
  5. taille max du nom d'un champ
    Par hna dans le forum Paradox
    Réponses: 2
    Dernier message: 28/07/2002, 02h40

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