[英]Set AUTO_INCREMENT value through variable in MySql
我有一个带有auto_increment列的表。 我将列的最后一个值保存在另一个名为ids_tbl的表中,当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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.