2011-12-01 88 views
0

我有一個數據的MySQL數據庫。我想更改數據庫表結構(爲某些表添加一些新列,添加新表)。將數據保存在數據庫中,這可以完成並且可以。但我想數據到新修改的數據庫從早期database.That方式出口,我有沒有數據的數據庫的結構,我改變了表並添加新表到database.Then我要出口數據(這是在更早的數據庫)到新的修改過的數據庫。在這裏,可以導出一個一個的表。但是如果有更多的表和更多的列,我怎麼能在一臺PC和一臺MySQL服務器上完成這項工作?轉移MySQL的數據到新的數據庫結構

回答

1

如果使用mysqldump並省略DDL語句(-t選項)以及使用完整的刀片(-c選項),你應該能夠把舊錶的數據,並將其插入到新表,沒有麻煩。

然而,這並假定你不改變文件名/類型的任何表/字段,並簡單地增加新的+不同的領域。如果您要更改表名和/或字段名,那麼你就要去導入轉儲到一個單獨的臨時數據庫,做一個insert ... select from類型的查詢,您可以指定新的字段映射更好。


$ mysqldump -p -t -c name_of_db table1 table2 table3 ... > dump.sql 
$ mysql -p name_of_other_db < dump.sql 

-p =提示輸入密碼(可能需要-u用戶名如果​​你的MySQL用戶名不匹配您的系統登錄的用戶名)
-t =跳錶的創建
-C =使用完整的插入

+0

感謝。我不會更改具有數據的列名稱或表名,只是添加新列。你會用示例代碼解釋更多關於mysqldump的信息嗎? –

+0

非常感謝。請更多解釋。 –

+0

此外,如果新的表列的順序是,「身份證」,「年齡」,「名」,然後導出後,在以前的數據庫的「ID」列中的數據轉到新的數據庫和數據的「身份證」列'前一個數據庫的「名稱」列轉到新數據庫的「名稱」列,中間列可能保持爲「空」。我是否正確?(表格列順序的更改無效) –