Mysql
 sql >> Database >  >> RDS >> Mysql

Valore incrementale MySQL

Sì:utilizza una variabile definita dall'utente :

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;

Il risultato dell'incremento a @position è il valore utilizzato per l'inserimento.

Modifica:

Puoi saltare la dichiarazione della variabile gestendo il valore iniziale in linea:

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

Ciò può essere particolarmente utile quando si esegue la query utilizzando un driver che non consente più comandi (separati da punto e virgola).