BDD mySQL: insertion enregistrement avec décalage de numéro

gaston gaston
1 471 contributions
Membre depuis le 01/03/2001
Envoyé le 17/04/2018 à 17:21 Modifié par gaston


Bonjour,
J'ai une table avec plusieurs champs (pour ne citer que les principaux: id_rep: clé primaire, num_rep de type int, rep type texte) où je voudrais insérer un enregistrement à la ligne 47 (par exemple), en décalant de +1 chaque champ num_rep (qui n'est pas la clé primaire de la table, mais un numéro d'ordre), c.a.d. que le nouvel enregistrement serait le num_rep 47, le 47 actuel deviendrait le 48, le 48 le 49, etc...jusqu'à la fin (j'aurai moins de 300 enregistrements de toutes façons)

déjà pour décaler les num_rep, j'ai voulu faire ce code:

UPDATE matable SET VALUE num_rep = num_rep+1 WHERE num_rep >= 47



mais j'obtiens ceci:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'num_rep = num_rep+1 WHERE num_rep >= 47' at line 1

et je ne pige pas pourquoi ça ne fonctionne pas ? A votre avis ?

EDIT: solution:
1) j'aurais du mettre SET tout court et non pas SET VALUE
2) quand je fais la bonne requête, ça m'indique qu'il y a un doublon et donc faut rajouter une clause ORDER BY num_rep DESC pour que la mise à jour commence par la fin...
désolé du dérangement ;-)
carpe diem

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum