【发布时间】:2015-05-16 01:59:21
【问题描述】:
我想通过首先找到最大 id 值来设置每列的 auto_increment 值。
我引用this SO question的代码。
准备好的语句的mysql docs 显示类似的格式,所以我很困惑。
当我尝试运行准备语句时,我遇到了失败。为什么?
以下是我尝试准备常规语句以及尝试使用“?”准备 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
【问题讨论】:
-
您链接到的问题包含许多关于此问题的 cmet,并且至少一个答案具有可行的解决方法。如果您的问题是“为什么”而不是“如何”,那么鉴于文档未涵盖此用例,它可能与基于意见的主题无关。
-
我想知道
why,是因为mysql版本还是操作系统等原因。我需要确保我的代码可以在多个服务器上运行。 -
如果您担心可移植性,请采取务实的方法,不要为此任务使用准备好的语句。我不明白你为什么要在这里使用用户输入,而且无论如何要确保你在连接中使用的值是一个整数并不难。