【问题标题】:MySQL - Renaming databaseMySQL - 重命名数据库
【发布时间】:2016-07-06 16:23:35
【问题描述】:

使用 PHPMyAdmin 版本 4.5.2 和 SQL 5.7.9。 我有一个名为“名称”的数据库,其中包含 3 个表“一”、“三”、“二”,按特定顺序升序排列。 现在,当我在 PHPMyAdmin 中使用 Operations>Rename Database 功能并将新名称设置为“newname”时,它重命名就可以了。 我查看控制台以查看它用于执行此操作的命令:

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

我需要有人解释这些命令,它是如何做到的?我只看到它提到了表“二”,但它正确地复制了所有表(一、三、二) 我想知道,因为这只是一个简单的示例,我将需要在一个更复杂的数据库中使用这些命令(不使用操作>重命名数据库)填充不同类型的表。

编辑:

   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)

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

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

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

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

    【讨论】:

    • 我似乎完全误解了这一点。所以我应该写什么,总的来说。完成既定任务?我尝试了类似“重命名表newname.twoname.two;重命名表newname.onename.one;重命名表newname.@。至name.three;删除数据库newname;"我只是收到错误。我会将上面的代码粘贴为 sn-p 代码,以便在我的初始帖子中更具可读性。
    • 我知道这是我的错,但我不是读心术!你得到什么错误?
    • "#1025 - 将 '.\newname\two' 重命名为 '.\name\two' 时出错(错误号:168 - 来自引擎的未知(通用)错误)"
    • 我还想补充一点,这是我这次尝试将名称从“新名称”转换为“名称”。不像我最初提到的那样相反。
    • 通用错误位表明错误是从操作系统级别返回的。您需要获取更多详细信息,因为这是特定于您的环境的。显示错误,显示innodb错误,查看mysql错误日志等
    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2011-08-19
    • 2017-10-04
    • 1970-01-01
    • 2020-04-30
    • 2011-07-30
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多