Page 1 sur 1

update id auto-increment

Posté : 21 mars 2005, 17:21
par hak
bonjour

je voudrai savoir si on pouvait faire un update auto-incrementé sur un id auto-incrementé ?? je crois que ce n'est pas possible mais bon l'epoir fait vivre :lol: .

merci de vos reponses .

Posté : 21 mars 2005, 17:37
par guizmow
keske tu appel un update autoincrementé???

Posté : 21 mars 2005, 20:21
par Invité
alors pour etre plus précis .
je fais un insert dans une base de données , l'identifiant est auto incrementé , bon la rien de speciale , en revanche ma question est si je fais un update sur cette meme ligne est ce que je peux le faire sur l'identifiant . exemple :

insert :
-----------
ligne1 : id=56 , nom=nom , etc etc
ligne2 : id=57, nom=nom , etc etc
ligne3 : id=58 , nom=nom , etc etc
ligne4 : id=59 , nom=nom , etc etc
ligne5 : id=60 , nom=nom , etc etc
...etc
..etc
lignen : id=n , nom=nom , etc etc

je veux faire un update sur la ligne 1 :
est ce que celle ci peut devenir comme ça :
lignen+1 : id=n+1 , nom=autrenom , etc etc

j'espere que je me suis fait comprendre :(

Posté : 21 mars 2005, 21:02
par ayayaaa
A ma connaissance non tu ne peux pas.

Mais quel est l'intérêt de faire ca???

Y a peut être une autre solution?

AYAYAAA

Posté : 21 mars 2005, 21:05
par hak
merci de ta reponse c'est ce que je craignais .
bon courage

Posté : 21 mars 2005, 21:46
par mere-teresa
Pourquoi tu ne pourrais pas ?

Posté : 22 mars 2005, 16:00
par hak
c'est bon j'ai trouvé un truc :
c'est un peu tiré par les cheveux mais ça marche si ça peut aider qqun , je reprend la prog de qqun d'autre et je suis obligé de faire avec et m'adapter à ce qu'il a fait.

Code : Tout sélectionner

$query="select id from table order by id desc limit 0,1"; $result=mysql_query($query)or die("requete erreur"); $num_resultas = mysql_num_rows($result); if ($num_resultas) { $row = mysql_fetch_array($result); $id ="$row[id]"; $idu=$id+1; $query =" update table set id='$idu', etc etc etc ...";

Posté : 22 mars 2005, 16:13
par Cyrano
ça marche pas ce truc: si tu incrémentes "manuellement" une valeur de clé primaire, tu vas te heurter à l'existence d'une autre clé portant déjà le numéro que tu veux mettre... Tu peux faire tous les scripts que tu voudras, il faudrait, pour que ça marche, que tu fasse un update sur toutes les lignes de la table en commençant par le numéro le plus grand: en l'incrémentant, tu libères la place pour incrémenter la clé inférieure etc...

Posté : 22 mars 2005, 16:59
par Jerem'
Au lieu d'update, tu fais un INSERT avec les nouvelles données et un DELETE de l'ancien enregistrement :idea:

Posté : 22 mars 2005, 17:49
par Deis
D'après son explication il veut que si il modifie la ligne 2 elle deviennent la ligne 3 ( et que toute les lignes suivantes soient décallé ).

Avec un delete / insert sa prendra la dernière id + 1 et non pas l'id de la ligne + 1.

Posté : 22 mars 2005, 17:52
par Cyrano
Ben oui, justement, c'est précisément ce que j'ai écrit si vous lisez bien: il faudra traiter toutes les lignes en partant de l'id le plus grand pour décaler.
Je serais très curieux de comprendre la nécessité de faire ça :-k

Posté : 22 mars 2005, 21:01
par Jerem'
Au temps pour moi j'avais pas compris comme ça

C'est bizarre :o