MySQL - 重命名数据库

MySQL - Renaming database

使用 PHPMyAdmin 版本 4.5.2 和 SQL 5.7.9。 我有一个名为 'name' 的数据库,其中有 3 个 tables 'one' 'three' 'two' 按特定顺序升序排列。 现在,当我在 PHPMyAdmin 中使用“操作”>“重命名数据库”功能并将新名称设置为 'newname' 时,它会重命名。 我查看控制台以查看它使用的是什么命令:

            RENAME TABLE `name`.`two`
              TO `newname`.`two`;
            DROP DATABASE `name`;

我需要的是有人来解释这些命令,它是怎么做到的?我只看到它提到 table 'two' 但它成功地复制了所有这些(一、三、二) 我想知道,因为这只是一个简单的例子,我将需要在一个更复杂的数据库中使用这些命令(不使用操作>重命名数据库),这些数据库会填充各种不同的 tables.

编辑:

   RENAME TABLE `newname`.`two`
                TO `name`.`two`;
                   RENAME TABLE `newname`.`one`
                TO `name`.`one`;
                   RENAME TABLE `newname`.`three`
                TO `name`.`three`;
            DROP DATABASE `newname`;

产生错误:

#1025 - Error on rename of '.\newname\two' to '.\name\two' (errno: 168 - Unknown (generic) error from engine)

控制台可能没有记录所有命令,因为您指定形式的 rename table 命令仅将一个 table 从源数据库移动到目标。尝试自己手动发出 2 个命令,您会明白我的意思。

您可以使用 rename table 重命名多个 table 并通过提供要重命名的 table 列表将它们移动到不同的数据库:

RENAME TABLE tbl_name TO new_tbl_name
    [, tbl_name2 TO new_tbl_name2] ...