2013-03-20 40 views
0
  1. 舊數據庫進行inforation行
  2. 與多家刪除列
  3. 的重構數據庫

我想轉儲舊數據庫,並重新填充新的數據庫。填充mysqldump的數據插入到表:僅適用於存在於一個給定的數據庫

...但是,只有當新的數據庫有一個給定列

例子:

  • old_DB用戶表有5列:登錄,電子郵件,市,州,電話

  • new_DB用戶表有:登錄,電子郵件,電話

是否有質量我可以運行的操作只能填寫登錄,電子郵件和電話?

回答

3

假設這兩種的DB同MySQL實例中運行,你可以做

INSERT INTO newdb.newtable (field1, field2, ....) 
    SELECT FROM olddb.oldtable (field1, field2, ...) 

爲單個查詢。不需要使用轉儲。相關的文檔在這裏:http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

+0

所以我檢查了這一點......可悲的是它的一個步驟LESS自動化比IDEAL ...有沒有辦法返回newdb.newtable中存在的字段並使用它來填充SELECT FROM語句? – 2013-03-20 21:42:38

+0

也我試過幾個變種......他們似乎並沒有工作https://gist.github.com/delinquentme/5209367和記錄我試圖插入所有行...不是一次一個:D – 2013-03-20 23:15:37

+1

您可以查詢information_schema以獲取字段名稱,並使用該信息構建查詢。但通常,爲什麼不只是轉儲/導入整個數據庫,然後改變/刪除不需要的字段?有時比試圖保留一個或兩個字段不被導出開始更容易。 – 2013-03-21 14:42:14

0

所以馬克·B的聲明的修改工作版本是在這裏:

INSERT INTO asdf_mock.citations_sites (`citation_id`, `site_id`, `created_at`, `updated_at`) 
    SELECT `citation_id`, `site_id`, `created_at`, `updated_at` 
    FROM asdf_production.citations_sites; 

與背部剔行情運行這給所需的插入。

相關問題