我想首先找到max id值,为每列设置auto_increment值。
我引用了this SO question中的代码。
准备好的陈述的mysql docs显示了类似的格式,所以我很困惑。
当我尝试运行prepare语句时,我遇到了失败。为什么呢?
下面是我尝试准备常规语句时的输出,然后当我尝试使用'?'准备auto_increment语句时以后再绑定。
mysql> PREPARE stmt1 FROM 'ALTER TABLE user AUTO_INCREMENT=2';
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> PREPARE stmt1 FROM 'ALTER TABLE user AUTO_INCREMENT=?';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
答案 0 :(得分:1)
另一种选择是
set @alter_statement = concat('alter table user auto_increment = ', @value);
prepare stmt1 from @alter_statement;
execute stmt1;
deallocate prepare stmt1;
出于某些原因,使用prepare
与?
时,似乎有很多人遇到语法错误。
我的猜测是它失败了,因为给定的值将被两个单引号之间的值替换(这只是一个猜测)。