2014-01-17 27 views
1
INSERT INTO table2 
SELECT * FROM table1; 

以上是將TABLE1中的EVERYTHING複製到table2的一種簡單方法。如何將記錄從db1中的table1複製到db2中的table2

但是我有幾個問題,

  1. 這兩個表是在兩個不同的數據庫
  2. 我不想複製一切,只是存在於表1額外的記錄
例如,

Table 1 
----------- 
id | name | age 

1 | Mike | 30 

2 | Ross | 28 


Table 2 
----------- 
id | name | age 

1 | Mike | 30 

現在我只想複製id2的行到table2上,因爲第1行已經存在。

P.S.有沒有辦法可以修改年齡(例如,將年齡乘以1.5)以更改table2中的記錄?

+0

INSERT INTO貼 SELECT ID,年齡副本 WHERE copy.id>(SELECT ID FROM貼ORDER BY ID DESC LIMIT 1) 我已經想出了上面的代碼複製僅在非記錄在table2中(table1 = copy和table2 = paste)。我希望這是最有效的方法。但是,我仍在努力修改複製過程中的數據。 – MiniGunnR

回答

0

對於示例:

INSERT INTO Table2 (id, name,age) 

SELECT Table1.Id,Table1.name,Table1.age FROM Table1 
LEFT JOIN Table2 ON (Table1.id=Table2.id) 
WHERE Table2.id IS NULL 

如果您需要在插入過程中修改age場只是在選擇更改ageage*1.5名單。

+0

這個解決方案像一個魅力。謝謝。 – MiniGunnR

+0

嗨,我回來瞭解它是否可能與位於兩個不同服務器上的兩個不同數據庫上的表一起工作? – MiniGunnR

0

從一個表複製到另一個數據:

INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1To copy data from one database to another : 



USE `old_database`; 

INSERT INTO `new_database`.`new_table`(`column1`,`column2`,`column3`) 

SELECT `old_table`.`column2`, `old_table`.`column3`, `old_table`.`column5` 

FROM `old_table 
相關問題