如何使用变量重命名mysql中的表以生成新的表名?

时间:2012-10-01 08:24:19

标签: mysql sql

这是我重命名表格的代码。

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

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

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

RENAME TABLE trans To @NewTableName;

在这里我得到的错误就像

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'@NewTableName

我不知道错误是什么。

2 个答案:

答案 0 :(得分:2)

使用动态sql

set @q = concat("rename table trans to", @newtableName);
prepare stmt from @q;
execute stmt;
deallocate prepare stmt

答案 1 :(得分:0)

重命名是一个原子操作,我认为你不能在这里使用sql变量。