-1

これは、テーブルの名前を変更するための私のコードです。

SELECT  @MinDate := MIN(time) FROM trans;

SELECT  @MaxDate := MAX(time) FROM trans;

set @NewTableName := CONCAT(@MinDate, '-' , @MaxDate );

RENAME TABLE trans To @NewTableName;

これで、次のようなエラーが発生します

SQL 構文にエラーがあります。'@NewTableName の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

何がエラーなのかわからない。

4

2 に答える 2

3

動的 SQL を使用する

set @q = concat("rename table trans to", @newtableName);
prepare stmt from @q;
execute stmt;
deallocate prepare stmt
于 2012-10-01T08:35:00.687 に答える
0

名前の変更はアトム操作です。ここでは sql 変数を使用できないと思います。

于 2012-10-01T08:28:21.650 に答える