ALTER TABLE
måste ha bokstavliga värden i sig när påståendet tolkas (dvs. vid förberedelsetid).
Du kan inte lägga in variabler eller parametrar i satsen vid analys, men du kan sätta variabler i satsen före analysera tid. Och det betyder att du använder 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;