Mysql
 sql >> Base de données >  >> RDS >> Mysql

Valeur d'incrémentation MySQL

Oui :Utilisez une variable définie par l'utilisateur :

SET @position := 0; -- Define a variable
INSERT INTO products
SELECT id_product, id_category, name, (@position := @position + 1)
FROM db2.products
WHERE id_category = xxx;

Le résultat de l'incrément à @position est la valeur utilisée pour l'insertion.

Modifier :

Vous pouvez sauter la déclaration de la variable en manipulant la valeur initiale en ligne :

...
SELECT ..., (@position := ifnull(@position, 0) + 1)
...

Cela peut être particulièrement pratique lors de l'exécution de la requête à l'aide d'un pilote qui n'autorise pas plusieurs commandes (séparées par des points-virgules).