sql >> Base de Datos >  >> RDS >> Mysql

Valor incremental de MySQL

Sí:use una variable definida por el usuario :

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;

El resultado del incremento a @position es el valor utilizado para la inserción.

Editar:

Puede omitir la declaración de la variable manejando el valor inicial en línea:

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

Esto puede ser especialmente útil cuando se ejecuta la consulta con un controlador que no permite varios comandos (separados por punto y coma).