簡體   English   中英

如何在MySql中合並兩個數據庫

[英]How to merge two databases in MySql

我需要合並兩個MySql數據庫。

  • DBtwo是DBone的副本。
  • 我將數據添加到DBone中的table_x,並且將數據添加到DBtwo中的table_y。
  • 我需要將數據添加到DBOne中,同時合並在DBTwo中進行的所有其他編輯(例如,刪除的條目)。
  • 因此,模式是相同的,而每個數據庫都有來自不同表的不同數據。

謝謝大家的幫助。

編輯:我忘記了。 我在table_x中添加了列,這些列是table_y的外鍵。 因此,DBone插入了一些條目,但沒有添加到DBtwo中的table_x的列。 :/

您可以使用觸發器。 請參閱MySQL文檔以獲取有關觸發器,函數和過程的實現。

合並之前是否有原始數據庫的副本? 如果沒有,您的要求是不可能的。 這是問題所在:

原始數據庫具有以下記錄:

{a, b, c}

在table_x中,您添加了廣告,所以現在您有了:

{a, b, c, d}

在表y中,刪除ab,因此具有:

{a, c}

現在,您嘗試合並這兩個數據集:

{a, b, c, d}
{a, c}

不參考原始文檔,您如何知道b和d是否應位於新集中。 如果它們不是原始文件,並且您是在分支之后添加的,則應將其包括在內。 如果它們是原始文件,並且您自合並以來已在table_y中刪除了它們,則不應將它們包括在內。

假設您確實具有訪問權限,則需要執行以下操作:

insert into table_y
select *
from table_x x
where x.id not in (select id from table_x_original)

然后將table_y重命名為table_x(如果您希望table_x成為新的數據源)。 如果生成了您的ID並且可能存在沖突,則需要將*替換為ID列以外的所有其他列的列表,以生成新的順序ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM