2016-03-20 186 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