通过变量在MySql中设置AUTO_INCREMENT值

13

我有一张带有自增列的表。我将该列的最后一个值保存在另一个名为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); 

那么它现在不起作用,我如何通过一个变量设置自动增量值?


一个选项是使用13.5 Prepared SQL Statement Syntax - wchiquito
值得一提的是,在MySQL 8.0中,这种需求将不再存在。请参阅http://lefred.be/content/bye-bye-bug-199/。 - Bill Karwin
1个回答

29

谢谢。真不错。谢谢@Bill Karwin,我也会考虑升级的。 - Sinai
9
除非你想将 @max_id 增加 1: `SELECT MAX(id) + 1 INTO @max_id FROM ids_tbl;` - michelek
感谢您提供这个优秀的解决方案。 - jeewiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接