Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL &innoDB modifient dynamiquement AUTO_INCREMENT d'une table

ALTER TABLE doit contenir des valeurs littérales au moment où l'instruction est analysée (c'est-à-dire au moment de la préparation).

Vous ne pouvez pas mettre de variables ou de paramètres dans l'instruction au moment de l'analyse, mais vous pouvez mettre des variables dans l'instruction avant temps d'analyse. Et cela signifie utiliser du SQL dynamique :

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