ALTER TABLE
harus memiliki nilai literal di dalamnya pada saat pernyataan diuraikan (yaitu pada waktu persiapan).
Anda tidak dapat memasukkan variabel atau parameter ke dalam pernyataan pada waktu parse, tetapi Anda dapat memasukkan variabel ke dalam pernyataan sebelum mengurai waktu. Dan itu berarti menggunakan SQL dinamis:
SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;