[SQL] Generer une nouvelle clé autoincrementé

Fermé
Linkinou - 29 nov. 2011 à 16:31
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 30 nov. 2011 à 11:01
Bonjour,

Simple question, j'ai fouillé le net sans trouver de reponse malhereusement.

J'ai une requete SQL de ce type :

UPDATE folders SET id_folder = ? WHERE id_folder = 4


J'aimerais donc modifié la clé auto-increment de cette ligne.
Il y a t-il un moyen pour que MySQL attribue automatiquement une nouvelle valeur incrémenté à id_folder ? Si oui, que dois-je mettre a la place du "?" ?

Merci d'avance !

A voir également:

4 réponses

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
29 nov. 2011 à 17:03
Salut,

UPDATE folders SET id_folder = id_folder + 10 WHERE id_folder = 4

cette commande changera le valeur "id" de l'objet possédant l'id 4 par "id" = 14
ça répond à ton questionnement ?

Cordialement
Exileur
0
Personne ? Dommage =!
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
30 nov. 2011 à 10:24
Bonjour,

Le champs doit être déclaré comme "auto_increment" pendant la création de la table "create table".

http://dev.mysql.com/doc/refman/5.0/fr/example-auto-increment.html


La requête que vous avez cité change la valeur de la clé primaire, c'est trop risqué et déconseillé dans les bases des données.

Qu'est ce que vous voulez faire au juste?
0
Bonjour,

Oui j'ai bien conscience que c'est déconseillé mais je prend bien soin de modifier en cascade les autres valeurs associées à cette clé primaire. Et puis c'est aussi parce que je me pose sérieusement la question, peut être que j'envisagerais une autre solution par la suite.

Donc ce que je veux faire au juste, c'est mettre à jour la clé primaire d'une ligne de ma table pour qu'elle prenne automatiquement la prochaine valeur "auto_increment". Le champs est bien configuré pour.

Merci,
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
30 nov. 2011 à 10:44
Aucune idée :'(

Mais si vous travaillez avec PHP, vous pouvez récupérer le dernier id généré et puis vous mettez +1 dans le Update.

https://www.christophelebot.fr/2006/03/recuperer-dernier-auto-increment-mysql-avec-php/
0
C'est pas grave, j'ai beaucoup cherché et demandé autour de moi, personne ne savait ;) C'est peut etre tout simplement pas faisable à cause de ce probleme de liason...
Concernant la recuperation de l'id, je pense que ce n'est pas adapté dans mon cas pour la simple raison que si plusieurs utilisateurs travaillent en meme temps sur la meme table, mysql risque de s'emmeler les pinceaux. Le temps du traitement, peut etre qu'un autre utilisateur à inserer une nouvelle ligne dans la table, etc. Mais mille merci d'avoir pris le temps de me repondre.
0
« Notez aussi que la valeur de retour de la fonction SQL LAST_INSERT_ID() contient toujours la valeur d'AUTO_INCREMENT la plus à jour. Cette valeur n'est pas remise à zéro lors de l'exécution d'autre requêtes car elle est maintenue pour le serveur. »

Ah peut être pas en faite :)
0
Effectivement je lis de plus en plus votre article est je m'apercois que recuperer la derniere valeur manuellement est faisable sans que MySQL ne s'emmele les pinceaux ! Magnifique =)
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
30 nov. 2011 à 11:01
J'espère que cela a pu vous aider :)
Bon continuation.
0