通过 MySql 中的变量设置 AUTO_INCREMENT 值

Set AUTO_INCREMENT value through variable in MySql

我有一个 table 和一个 auto_increment 列。我将列的最后一个值保存在另一个名为 ids_tbl 的 table 中,当 mysql 重新启动时,从 ids_tbl 读取值并重新设置 AUTO_INCREMENT价值。 如果我这样做:

alter table outgoing_tbl auto_increment=500; 

有效

但如果我这样做

select @max_id:= max_id FROM ids_tbl;
alter table outgoing_tbl auto_increment=@max_id; 

或者如果我这样做:

select @max_id:= max_id FROM ids_tbl;
alter table outgoing_tbl auto_increment=(select @max_id); 

那不行,请问如何通过变量设置自增值?

使用下面的代码。这工作正常。 并遵循 MySQL 准备语句 https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html

SET @max_id = (SELECT MAX(id) FROM `ids_tbl` );
SET @sql = CONCAT('ALTER TABLE `outgoing_tbl` AUTO_INCREMENT = ', @max_id);
PREPARE st FROM @sql;
EXECUTE st;