Réattribuer des id

Réattribuer des id - SQL/NoSQL - Programmation

Marsh Posté le 19-03-2006 à 16:19:46    

Bonjour. Je souhaiterais effectuer quelques modifications sur l'une des mes tables SQL à l'aide d'une requête, dont malheureusement je ne connais pas la syntaxe et à propos de laquelle je ne parviens pas à trouver de renseignements.
 
La table en question possède une vingtaine de champs, mais juste 2 nous intéressent. Le champ id et le champ nom. Le champ id est ma clé d'index primaire, et est configuré pour s'incrémenter de 1 à chaque nouvelle entrée. Le numéro id correspond donc à l'odre dans lequel la table a été renseignée.
 
Je voudrais réorganiser ma table par ordre alphabétique des noms, c'est-à-dire trier les "fiches" par ordre alphabétique du champ nom, et changer l'id pour qu'il corresponde à cet ordre. Une fois cette opération terminée, j'aimerais que si de nouvelles données sont saisies, la nouvelle fiche ait pour id l'id la plus élevée+1 (que ça fonctionne comme avant pour les fiches rentrées ensuite en fait...)
 
J'ai bien chercher des renseignements sur Google mais en vain.
 
En vous remerciant par avance.

Reply

Marsh Posté le 19-03-2006 à 16:19:46   

Reply

Marsh Posté le 19-03-2006 à 20:44:11    

Bonjour. La question est un peu étrange.
 

Citation :

Une table SQL ?

Plutôt une table accessible par SQL. SQL signifie Structured Query Language, et est une norme pour un langage de requête, mais les tables peuvent être définies sous n'importe quelles formes, puisqu'il peut s'agir de liste, d'arbre, de fichiers XML, etc.
 

Citation :

réorganiser ma table par ordre alphabétique des noms

Habituellement, les enregistrements sont dans n'importe quel ordre, mais c'est lors de la requête de consultaton que l'on trie les résultats avec

SELECT id, nom ORDER BY nom


 

Citation :

changer l'id

Ah, voilà une question classique. La réponse dépend de la base de données utilisée. Est-ce Oracle, Access, MySQL, ... ? La plupart du temps, cela nécessiste de créer une nouvelle table et de transférer les données de l'ancienne table dans la nouvelle table en faisant attention à ce que le transfert se fasse dans l'ordre voulu.
 

Reply

Marsh Posté le 19-03-2006 à 23:21:15    

olivthill, merci de m'informer sur les précautions oratoires à prendre avant de parler de table SQL. ^^ Quant au ORDER BY, je connais cette commande mais elle ne me convient pas car le résultat n'est pas enregistré de manière définitive (en tout cas avenc un SELECT).
Sinon, la BDD que j'utilise est MySQL.
 
Merci d'avance.^^

Reply

Marsh Posté le 19-03-2006 à 23:28:26    

un moyen simple
 
tu supprime ton champ Id
tu trie ta table par nom ALTER TABLE ORDER BY nom
tu ajoute ton champ Id en auto increment et il va se numéroter tout seul
 
je viens de tester à l'instant, ça marche :)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 19-03-2006 à 23:52:56    

Je viens de le faire, effectivement ça marche. ^^ Merci beaucoup (en fait je ne pensais pas qu'un ALTER TABLE suffirait...)

Reply

Marsh Posté le 20-03-2006 à 08:03:10    

Sh@rdar a écrit :

un moyen simple
 
tu supprime ton champ Id
tu trie ta table par nom ALTER TABLE ORDER BY nom
tu ajoute ton champ Id en auto increment et il va se numéroter tout seul
 
je viens de tester à l'instant, ça marche :)


 
si il ya deux champs identiques ca risque de planter (et que l'id était la clef primaire)

Reply

Marsh Posté le 20-03-2006 à 08:29:54    

deux champs identiques ??


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2006 à 09:23:34    

je pense qu'il voulait dire 'enregistrement' ;)

Reply

Marsh Posté le 20-03-2006 à 09:37:25    

c'est pour ça que je pige pas puisque ça change rien :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 20-03-2006 à 12:19:51    

à moins de mettre une clé primaire sur le champs 'nom' après suppression des id, ca ne plantera rien effectivement


Message édité par jeoff le 20-03-2006 à 12:20:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed