ALTER TABLE
skal have bogstavelige værdier i sig på det tidspunkt, hvor sætningen parses (dvs. på forberedelsestidspunktet).
Du kan ikke indsætte variabler eller parametre i sætningen på parsetidspunktet, men du kan indsætte variabler i sætningen før parse tid. Og det betyder at bruge dynamisk SQL:
SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;