|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
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 |
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
Si ce n'est pas une clef, tu veux que cela s'incremente par rapport a quoi ?!?
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
par rapport à la plus haute des valeurs ? c'est comme ça que ça fait normalement non ?
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
mais alors a quoi va te servir cette colonne incrémentée si tu as deja une clé primaire dans ta table ?
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
Citation:
PS : desole pour le ton, mais j'ai pas l'impression que tu y es vraiment reflechi
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 5 ![]() |
Citation:
Merci de répondre que si vous apportez une aide constructive et non des commentaires personnels inutiles. |
|
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
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 |
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
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.
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
|
00
|
|
|
#9 | |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Citation:
Peut tu donner un extrait de tes données pour qu'on comprenne bien le but de ta manoeuvre ? merci |
|
|
|
00
|
|
|
#10 | |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
Citation:
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. |
|
|
00
|
|
|
#11 | |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
Citation:
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é. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
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.
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
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 ?
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() Anthony DesvernoisIngénieur sécurité & risque Inscription : juin 2007 Messages : 1 501 ![]() |
Encore faut-il l'incrementer par rapport a une valeur, et mettre une requete count est un peu lourd.
__________________
"Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley "Less is more" Ludwig Mies Van Der Rohe Risk & Security Mgmt |
|
00
|
|
|
#15 | |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
Citation:
|
|
|
00
|
|
|
#16 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Pourquoi de pas utiliser une colonne auto_incrementé en clef primaire alors ?
Tu ne peux pas la changer ? |
|
|
00
|
|
|
#17 |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
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 |
|
00
|
|
|
#18 | |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
Citation:
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. |
|
|
00
|
|
|
#19 |
|
Membre expérimenté
![]() Consultant informatique Inscription : septembre 2006 Messages : 568 ![]() |
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. |
|
00
|
Copyright © 2000-2012 - www.developpez.com