2016-03-20 153 views
0

使用PHPMyAdmin版本4.5.2和SQL 5.7.9。 我有一个名为'名字'的数据库,有3个表格'1''3''''',按照该顺序升序排列。 现在,当我使用PHPMyAdmin中的操作>重命名数据库功能并将新名称设置为'newname'时,它重命名得很好。 我期待到控制台,看看有什么命令它曾经这样做:MySQL - 重命名数据库

  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) 

回答

1

大概控制台并没有因为在形式rename table命令指定从源数据库移动只有一个表到目标记录所有的命令。尝试手动发布2个命令,你会明白我的意思。

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

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

我似乎被完全误解这一点。那么我应该怎么写呢?要完成规定的任务?我试过类似“RENAME TABLE'newname'.'two' TO'name'.'two'; RENAME TABLE'newname'.one' TO'name'.one'; RENAME TABLE'newname' .'three' TO'name'.'three'; DROP DATABASE'newname';”我只是收到错误。我将粘贴上面的代码片段在我的初始文章中更具可读性。 – xmaxert

+0

我知道这是我的错,但我不是一个心灵读者!你会得到什么错误? – Shadow

+0

“#1025 - 错误上的重命名‘\ NEWNAME \两个’到(错误:168 - 从发动机未知(通用)错误)‘\用户名\两项。’” – xmaxert