2011-08-05 37 views
0

我有一個表 - customers_old。我想複製此表中的所有數據,因此我將使用mysqldump。mysql備份和恢復到不同列名的表

我需要將數據恢復到一個表customers_new,它的列名與customers_old表不同。

我該怎麼做?

INSERT..SELECT僅用於手動複製每一行嗎?

請告知

感謝

回答

0

您既可以編輯列和表名在SQL轉儲文件,或從舊錶導入新表,然後做一個INSERT SELECT。

0

你不能直接這樣做,除非你手動修改轉儲文件來改變那裏的列名。一種選擇是將轉儲加載到臨時數據庫/表中,然後執行一些ALTER TABLE查詢以將列重命名爲任何你想要的。或者你可以做INSERT/SELECT,但是你最終會得到兩倍的數據(新的重命名的表/字段+舊的原始表/字段)。

+0

修改表的數據複製到新表,然後刪除舊錶,所以有這種辦法比你想象的那麼差。僅當您更改數據類型時纔可使用 – Johan

+0

。重命名列不會這樣做。 –

+0

我想黑客的轉儲文件是要走的路。我會回來後,一旦我有工作 – kelly

2

要擴大PMV的回答是:

INSERT INTO newtable (column1_new, column2_new, ...) 
    SELECT column1_old, column2_old FROM oldtable