如何在MySQL中重命名表

时间:2014-09-15 21:59:30

标签: mysql sql

我正在编写一个SQL脚本来重命名MySQL数据库中的许多表。我想将前缀更改为新值。我使用的代码如下所示。可以在"重命名表"中使用变量。命令?

感谢。

set @oldTable = 'j5xqy_banner_clients';
set @newTable = 'p5gsk_banner_clients';

rename table @oldTable to @newTable

2 个答案:

答案 0 :(得分:2)

您可以这样做,但您需要使用预先准备好的声明:

SET @oldTable = 'a_b';
SET @newtable = 'b_b';
SET @sql = CONCAT('RENAME TABLE ', @oldTable, ' TO ', @newtable);

PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

答案 1 :(得分:1)

记住规则的好方法:

变量和参数只能在SQL中使用,否则您将使用单个常量值,而不是使用标识符(列名,表名等)或SQL的位置关键字或表达式。

在解析之前,SQL语法中所需的任何动态内容都必须在之前。这就是为什么它如果你创建一个字符串,然后准备/执行它的原因,如@sgeddes的答案所示。