Mysql

將 MySQL 表複製到另一個表而不會失去新的更改

  • April 9, 2022

我想重新創建/複製一個 MySQL 表(一個實際的新 ibd 文件) - 大多數建議建議如下:

CREATE TABLE mytbcopy LIKE mytb;
INSERT INTO mytbcopy SELECT * FROM mytb; 

該建議效果很好 - 但據我了解(如果我錯了,請糾正我),它不會在複製/重新創建期間在新表中插入/更新記錄。

範例:在復製過程中,如果記錄 #45 已經插入到新表中,並且原始表上的記錄 #45 有更新 - 它不會被複製

有沒有其他方法可以保證數據全部複製過來後,新表上的數據會處於最新狀態?我不確定使用 TRIGGERS 是否可以解決此問題。

您提供的方式是創建表的備份副本的非常簡單和基本級別的解決方案。一旦複製完成並且有人對主表備份進行了更改,將不會使用原始表進行更新,因此您必須再次執行此操作。

據我了解,您希望保留整個數據庫的備份,該備份應該是最新的,所有更改都已完成。

為此,您可以創建數據庫的主從副本,它將作為主從數據庫工作。在主數據庫中所做的更改將自動反映在從數據庫中。

謝謝你。

不要重新發明輪子。 pt-online-query-digest照顧所有這些。正如您所建議的,它確實需要一個觸發器來使新表保持最新。

引用自:https://dba.stackexchange.com/questions/255536