ALTER TABLE
muss wörtliche Werte enthalten, wenn die Anweisung geparst wird (d. h. zur Vorbereitungszeit).
Sie können keine Variablen oder Parameter zur Parsing-Zeit in die Anweisung einfügen, aber Sie können vorher Variablen in die Anweisung einfügen Zeit analysieren. Und das bedeutet, dynamisches SQL zu verwenden:
SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;