2

使用 MySQL 5.5.31

请参阅下面的 SQL:

set @auto_table = 'MyTableName';
PREPARE stmt FROM 'ALTER TABLE `?` AUTO_INCREMENT = 1';
EXECUTE stmt USING @auto_table;

来自 MySQL 的错误消息:

Incorrect arguments to EXECUTE

我试图将第二行更改为:

PREPARE stmt FROM 'ALTER TABLE ? AUTO_INCREMENT = 1';

然后错误信息是:

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 '? AUTO_INCREMENT = 1' at line 1
4

2 回答 2

4

试试这个,

PREPARE stmt FROM 'ALTER TABLE ' + @auto_table + ' AUTO_INCREMENT = 1';
EXECUTE stmt

请注意 SQL 注入。如果 @auto_table 来自用户,这将不安全。

于 2013-09-26T19:28:24.373 回答
-1

我认为你的错误在这里:

PREPARE stmt FROM 'ALTER TABLE `?` AUTO_INCREMENT = 1';

在 1 之前缺少 `

PREPARE stmt FROM 'ALTER TABLE `?` AUTO_INCREMENT = `1`';

希望这可以帮助。

于 2013-09-26T19:26:49.247 回答