使用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
答案 0 :(得分:4)
试试这个,
PREPARE stmt FROM 'ALTER TABLE ' + @auto_table + ' AUTO_INCREMENT = 1';
EXECUTE stmt
请注意SQL注入。如果@auto_table来自用户,这将是不安全的。
答案 1 :(得分:-1)
我认为你的错误在于:
PREPARE stmt FROM 'ALTER TABLE `?` AUTO_INCREMENT = 1';
在1
之前缺少`PREPARE stmt FROM 'ALTER TABLE `?` AUTO_INCREMENT = `1`';
希望这有帮助。