web-dev-qa-db-fra.com

Valeurs de mise à jour progressivement dans MySQL

un champ du champ de ma table est réglé sur 0 pour toutes les lignes. Mais je veux mettre à jour la valeur incrémentielle par étape 1 dans une requête de mise à jour.

comment puis-je faire cela dans MySQL?

43
hd.

Essaye ça:

mysql> select @i := 0;
mysql> update bar set c = (select @i := @i + 1);
102
Pablo Santa Cruz
SET @a = 0;  
UPDATE customers SET id = @a:=@a+1;

Vous pouvez aller pour cela aussi.

11
DRUPWAY

Une solution consiste à créer une nouvelle table avec une colonne Auto_inCremmentation au lieu de la colonne d'origine, insérant toutes les données de l'ancien dans la nouvelle table, puis renommer le nouveau et supprime l'ancien.

Une autre solution consiste à exécuter votre requête de mise à jour avec une variable MySQL qui génère un nombre croissant pour chaque ligne (pour émuler la fonction Row_Number () trouvée dans d'autres systèmes SGMS).

3
thomaspaulb