我有一個表 - customers_old。我想複製此表中的所有數據,因此我將使用mysqldump。mysql備份和恢復到不同列名的表
我需要將數據恢復到一個表customers_new,它的列名與customers_old表不同。
我該怎麼做?
INSERT..SELECT僅用於手動複製每一行嗎?
請告知
感謝
我有一個表 - customers_old。我想複製此表中的所有數據,因此我將使用mysqldump。mysql備份和恢復到不同列名的表
我需要將數據恢復到一個表customers_new,它的列名與customers_old表不同。
我該怎麼做?
INSERT..SELECT僅用於手動複製每一行嗎?
請告知
感謝
你可以用一個簡單的商品交易顧問做(CREATE TABLE AS)操作:
CREATE TABLE customers_new AS SELECT col1 AS new_col1, col2 AS new_col2 FROM customers_old
通過混淆你的老欄,您可以更改列名在新表中。
看到:http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html
您既可以編輯列和表名在SQL轉儲文件,或從舊錶導入新表,然後做一個INSERT SELECT。
你不能直接這樣做,除非你手動修改轉儲文件來改變那裏的列名。一種選擇是將轉儲加載到臨時數據庫/表中,然後執行一些ALTER TABLE查詢以將列重命名爲任何你想要的。或者你可以做INSERT/SELECT,但是你最終會得到兩倍的數據(新的重命名的表/字段+舊的原始表/字段)。
要擴大PMV的回答是:
INSERT INTO newtable (column1_new, column2_new, ...)
SELECT column1_old, column2_old FROM oldtable
修改表的數據複製到新表,然後刪除舊錶,所以有這種辦法比你想象的那麼差。僅當您更改數據類型時纔可使用 – Johan
。重命名列不會這樣做。 –
我想黑客的轉儲文件是要走的路。我會回來後,一旦我有工作 – kelly