Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL &innoDB ändern dynamisch AUTO_INCREMENT einer Tabelle

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;