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 :

probleme d'auto increment


Sujet :

MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut probleme d'auto increment
    Bonjour,

    j'ai un petit probleme :

    Je voudrais ajouter un attribut auto incrémenté à une de mes tables, sans que ce soit une clé, et mysql, ce petit blagueur, me dit qu'il ne peut pas sauf si cet attribut est une clé.

    Sauf que sur 3 autres de mes tables, j'ai des attributs non clé, non index autoincrémentés.

    Donc je voudrais savoir comment me dépatouiller de ça.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Si ce n'est pas une clef, tu veux que cela s'incremente par rapport a quoi ?!?

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    par rapport à la plus haute des valeurs ? c'est comme ça que ça fait normalement non ?

  4. #4
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    mais alors a quoi va te servir cette colonne incrémentée si tu as deja une clé primaire dans ta table ?

  5. #5
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Citation Envoyé par Faiche
    par rapport à la plus haute des valeurs ? c'est comme ça que ça fait normalement non ?
    Mais ca veut dire que....elle est unique ?!?!


    PS : desole pour le ton, mais j'ai pas l'impression que tu y es vraiment reflechi

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Anthony.Desvernois
    Mais ca veut dire que....elle est unique ?!?!


    PS : desole pour le ton, mais j'ai pas l'impression que tu y es vraiment reflechi
    Avoir un champ auto incrémenté peut parfois être pratique pour récupérer les données dans leur ordre d'ajout quand la clé primaire ne contient aucun champ index. Je pense que c'est ce qu'il veut faire.

    Merci de répondre que si vous apportez une aide constructive et non des commentaires personnels inutiles.

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    unique ça veut pas dire clé.

    J'ai besoin de réduire ma donnée en un seul identifiant. Mais depuis l'extérieur, je ne le connais pas, donc je vais pas m'amuser a retrouver une entrée qui s'appelle 1224213125141367865, tu vois ?

    Donc effectivement, j'y suis reflechi, comme tu dirais, et encore une fois, ma question n'est pas la.

    Si qqun pouvait m'éclairer, merci d'avance

  8. #8
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Mais as tu une clef primaire dans ta table ? Je ne vois pas qu'est ce qui te pose probleme a mettre ta valeur en clef primaire avec auto-incrementation.
    Cela ne t'oblige pas a retrouver la valeur par son numero, encore heureux.
    Tu peux mettre un champs texte plus explicite en unique si ton idee de base etait d'utiliser une chaine en primaire. Ce seras plus rapide, et surtout, les auto increment sont fait pour cela.

    PS ; au passage, mes remarques precedentes sont constructives.

  9. #9
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    J'ai besoin de réduire ma donnée en un seul identifiant.
    C'est a dire ? quel est le but quand tu dit réduire ta donnée? ta clef primaire est unique mais tu ne peux pas l'exploiter comme tu le veux ?

    Peut tu donner un extrait de tes données pour qu'on comprenne bien le but de ta manoeuvre ?

    merci

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Citation Envoyé par Anthony.Desvernois
    Mais as tu une clef primaire dans ta table ? Je ne vois pas qu'est ce qui te pose probleme a mettre ta valeur en clef primaire avec auto-incrementation.
    Cela ne t'oblige pas a retrouver la valeur par son numero, encore heureux.
    Tu peux mettre un champs texte plus explicite en unique si ton idee de base etait d'utiliser une chaine en primaire. Ce seras plus rapide, et surtout, les auto increment sont fait pour cela.

    PS ; au passage, mes remarques precedentes sont constructives.
    Bon, je vais passer ma journée a te ressortir mes shémas.

    Je suis pas en train de construire un site web avec 50 entrées, je peux pas me permettre de tout foutre en clé primaire, sinon ça devient n'importe quoi.

    Donc on a vu que tu n'avais pas compris, et que tu ne savais pas, on va passer au joueur suivant, merci.

  11. #11
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Citation Envoyé par pop_up
    C'est a dire ? quel est le but quand tu dit réduire ta donnée? ta clef primaire est unique mais tu ne peux pas l'exploiter comme tu le veux ?

    Peut tu donner un extrait de tes données pour qu'on comprenne bien le but de ta manoeuvre ?

    merci
    Bon, je peux pas rentrer vraiment dans les détail, alors je vais essayer de trouver un exemple :

    J'ai un des entrées représentant des clients. Chaque client provient d'une ville. J'ai une table ville avec pleins de données sur la ville.

    Logiquement, la clé primaire de la table Ville est multiple : nom du pays, nom de la region, nom de la ville.

    Donc pour chaque client, je peux pas écrire les trois clés. Donc je fournis un attribut ville_id à la table Ville, qui sera auto incrémenté, donc je me moque totalement de la valeur, du moment qu elle fait le lien entre Ville et Client.

    Voila ce que je veux dire par réduire ma donnée. Je n'ai pas besoin de mettre cet identifiant en clé.

  12. #12
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Lol, ben demerde toi. Je suis juste venu t'aider, maintenant si tu n'es pas capable de prendre un peu sur toi, d'expliquer correctement ton probleme, c'est ton probleme.

    Au passage, j'ai tres bien compris ton probleme, si tu relis mon dernier post tu verras que ton schema ne convient pas.

    EDIT : rectification, en fait non, tu fait dans le mauvais ordre. L'id representant
    la ville doit etre la clef primaire de l'autre table que tu transmet a ton enregistrement client, pas l'inverse.

    D'autres part, 50 entrees dans une table, ca fait un peu peur.

  13. #13
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Je ne suis pas sur de bien comprendre mais si au lieu de mettre une colonne a auto_increment, tu utilise une colonne de type int, que tu incrementeras toi meme, tu pourrais contourner ton probleme non ?

  14. #14
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Encore faut-il l'incrementer par rapport a une valeur, et mettre une requete count est un peu lourd.

  15. #15
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Citation Envoyé par pop_up
    Je ne suis pas sur de bien comprendre mais si au lieu de mettre une colonne a auto_increment, tu utilise une colonne de type int, que tu incrementeras toi meme, tu pourrais contourner ton probleme non ?
    Ben, je pourrais, mais comme je disais, je gere pas un site web avec un ajout tous les deux mois, mais plutot un paté avec 30000 ajouts par heure, donc forcément ça fait lourd.

  16. #16
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Pourquoi de pas utiliser une colonne auto_incrementé en clef primaire alors ?
    Tu ne peux pas la changer ?

  17. #17
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Bon, si personne ne veut d'autres détails utiles comme le nombre de tables que j'ai créé ou encore mon signe astrologique, j'aimerais savoir comment j'ai pu créer des entrées non clé et autoincrémentées dans certaines tables, alors que dans d'autres mysql (par phpmyadmin) me dit que je n'ai pas le droit ?

    Si qqun trouve la bonté en soi de répondre a ma question, je lui en serais reconnaissant

  18. #18
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Citation Envoyé par pop_up
    Pourquoi de pas utiliser une colonne auto_incrementé en clef primaire alors ?
    Tu ne peux pas la changer ?
    Ben comme je disais, une clé primaire, ça prends de la place, surtout si ça peut ne pas etre en clé primaire, comme dans la moitié de mes tables.

    Et puis quitte a passer le compteur en primaire, autant y coller tous les champs, comme ça on est sûrs qu'il n'y aura pas de doublons, et que tout sera vraiment unique.

    Enfin, quand même, pour éclairer notre cher promo2010 la haut : si on met juste l'id en primaire, et non le triplet {pays, region, ville} alors on ne peut pas garantir l'unicité des entrées.

  19. #19
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Bon, en bidouillant a la main, sans vraiment savoir ce que je faisais, j'ai réussi a faire ce que je voulais.

    Dans phpMyAdmin, quand on voit la structure, y a un pti tableau en bas qui s'appelle indexes.

    J'y ai ajouté mon champ, en "unique" et ensuite je l'ai modifié en auto incrément, et maintenant ça marche \o/

    Donc pkoi ça marchait tout seul avant, et que maintenant faut que je fasse ça à la main, je ne sais pas, mais bon.

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

Discussions similaires

  1. probleme avec auto incremental id
    Par riadhhwajdii dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/10/2009, 14h23
  2. Probleme d'auto incrementation
    Par kyoshiro94 dans le forum Débuter
    Réponses: 2
    Dernier message: 22/07/2008, 17h27
  3. probleme cle auto increment
    Par _momo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/08/2007, 10h40
  4. probleme avec une auto-incremente
    Par tchimou dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h28
  5. Réponses: 1
    Dernier message: 25/09/2006, 10h18

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