Ja:gebruik een door de gebruiker gedefinieerde variabele :
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;
Het resultaat van verhoging naar @position
is de waarde die wordt gebruikt voor de invoeging.
Bewerken:
U kunt de declaratie van de variabele overslaan door de initiële waarde in-line af te handelen:
...
SELECT ..., (@position := ifnull(@position, 0) + 1)
...
Dit kan met name handig zijn bij het uitvoeren van de query met een stuurprogramma dat geen meerdere opdrachten toestaat (gescheiden door puntkomma's).