Renuméroter certaines ligne

Résolu
ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008 - 6 mai 2007 à 12:18
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 6 mai 2007 à 21:04
Bonjour,
Je n'arrive pas à trouver la solution à mon probleme.
J'a une table du type

ChampsA      ChampsB
1                     toto
2                     blabla
3                     ggggg
4                     titi

J'aimerais donc trouver une requête qui me permet d'inserer un enregistrement par exemple avec le ChampsA = 2 et que les tous les champsA s'incrémentent pour qu'il n'y ai pas de doublons.

Merci de votre aide

Zitoun [:P]

4 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
6 mai 2007 à 21:04
Tu demandes la requête qui incrémente de 1 TOUS les enregistrements dont la valeur de ChampsA est supérieure ou égale à 2, je te la donne. Pas de boucle: cette requête se fait sur tous les enregistrements de la table qui correspondent à la clause WHERE.
C'est donc la solution la plus simple qui soit...

Je ne peux que te recommander de lire la doc avant de te lancer dans du développement...
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
6 mai 2007 à 16:58
Salut,

UPDATE nom_de_la_table SET ChampsA=ChampsA+1
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
6 mai 2007 à 17:00
Je crois que je suis allé un peu trop vite pour la requête.

UPDATE nom_de_la_table SET ChampsA=ChampsA+1 WHERE ChampsA>=2;
INSERT INTO nom_de_la_table (ChampsA, ChampsB) VALUES (2, 'patatipatata');

Sinon, pourquoi ne pas utiliser l'attribut AUTOINCREMENT ?
0
ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008
6 mai 2007 à 18:44
Je crois que je n'ai pas étais trés explicite... le problème est que j'ai plusieurs centaines d'enrgistrements... je dois donc mettre toutes mes lignes (champsA) à jour...
Ta requête UPDATE nom_de_la_table SET ChampsA=ChampsA+1 WHERE ChampsA>=2;
est bien et va me servir, mais dois-je créer une boucle pour faire un update sur toutes mes lignes ? ou y a til une solution plus "simple"

Merci en tout cas de la réponse

Zitoun
0
Rejoignez-nous