Mysql
 sql >> Database >  >> RDS >> Mysql

MYSQL e innoDB alterano dinamicamente AUTO_INCREMENT di una tabella

ALTER TABLE deve contenere valori letterali al momento dell'analisi dell'istruzione (cioè al momento della preparazione).

Non puoi inserire variabili o parametri nell'istruzione al momento dell'analisi, ma puoi inserire variabili nell'istruzione prima analizzare il tempo. E questo significa usare SQL dinamico:

SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;