2010-03-23 125 views
2

我有以下幾點。兩個mysql表。我想複製從表a更改爲b的信息。比較2個mysql表並只更新已更改的記錄

例如,如果第1行第2列在表a中發生了更改,我只想更新表b中的該列。表b與a不同,但具有同樣的列,也存在於a中。另一個解決方案是清除表b並將其替換爲表a中的內容,與此相關的問題可能是腳本執行時間較長,因爲有超過10000條記錄。任何建議哪種方法將工作最好將高度讚賞

回答

0

例如如果你在同一個數據庫上的2代不同的表得到了相同的數據,那麼你的數據庫是沒有標準化 - 你只是通過找到壞結構的解決方法來解決你的困難。

如果這些數據庫是2個獨立的數據庫 - 說羣集上的分佈式節點(儘管這意味着雙向同步),或者爲了報告目的而有近線數據庫副本,那麼您仍然應該正確地標準化數據並將不在表'a'中但在表'b'中找到的字段移動到第三個表中。該解決人口/複製問題,或者:

1)在MySQL

2使用內置的複製功能)添加一個索引時間戳字段表「A」然後合併,因爲一些已更新的記錄時間T

請注意,第二種方法不傳播刪除。

C.

+0

之前試井同意這個......他還需要一個觸發。 – karto 2012-04-15 21:19:28