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

2行目を次のように変更しようとしました:

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 に答える