Ja:Brug en brugerdefineret variabel :
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;
Resultatet af stigning til @position
er den værdi, der bruges til indsættelsen.
Rediger:
Du kan springe erklæringen af variablen over ved at håndtere startværdien in-line:
...
SELECT ..., (@position := ifnull(@position, 0) + 1)
...
Dette kan være særligt praktisk, når du udfører forespørgslen ved hjælp af en driver, der ikke tillader flere kommandoer (adskilt af semikolon).