我有以下幾點。兩個mysql表。我想複製從表a更改爲b的信息。比較2個mysql表並只更新已更改的記錄
例如,如果第1行第2列在表a中發生了更改,我只想更新表b中的該列。表b與a不同,但具有同樣的列,也存在於a中。另一個解決方案是清除表b並將其替換爲表a中的內容,與此相關的問題可能是腳本執行時間較長,因爲有超過10000條記錄。任何建議哪種方法將工作最好將高度讚賞
我有以下幾點。兩個mysql表。我想複製從表a更改爲b的信息。比較2個mysql表並只更新已更改的記錄
例如,如果第1行第2列在表a中發生了更改,我只想更新表b中的該列。表b與a不同,但具有同樣的列,也存在於a中。另一個解決方案是清除表b並將其替換爲表a中的內容,與此相關的問題可能是腳本執行時間較長,因爲有超過10000條記錄。任何建議哪種方法將工作最好將高度讚賞
使用觸發器更新一個表上,更新另一個。 可以看到在本教程中
http://www.brainbell.com/tutorials/MySQL/Creating_Triggers.htm
,並在這個崗位
http://forums.mysql.com/read.php?99,282455,282559#msg-282559
例如如果你在同一個數據庫上的2代不同的表得到了相同的數據,那麼你的數據庫是沒有標準化 - 你只是通過找到壞結構的解決方法來解決你的困難。
如果這些數據庫是2個獨立的數據庫 - 說羣集上的分佈式節點(儘管這意味着雙向同步),或者爲了報告目的而有近線數據庫副本,那麼您仍然應該正確地標準化數據並將不在表'a'中但在表'b'中找到的字段移動到第三個表中。該解決人口/複製問題,或者:
1)在MySQL
2使用內置的複製功能)添加一個索引時間戳字段表「A」然後合併,因爲一些已更新的記錄時間T
請注意,第二種方法不傳播刪除。
C.
之前試井同意這個......他還需要一個觸發。 – karto 2012-04-15 21:19:28
+1觸發器可以具有顯着的性能影響,生產 – Andy 2010-03-23 12:55:08