Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL e innoDB alteram dinamicamente AUTO_INCREMENT de uma tabela


ALTER TABLE deve ter valores literais no momento em que a instrução é analisada (ou seja, em tempo de preparação).

Você não pode colocar variáveis ​​ou parâmetros na instrução no momento da análise, mas pode colocar variáveis ​​na instrução antes tempo de análise. E isso significa usar SQL dinâmico:
SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;