0

私は少し前に 2 つの Wordpress ブログを立ち上げましたが、どちらも明らかに異なるデータベースを持っていました。最近、テーブルの接頭辞を変更してこれらのデータベースを 1 つにマージしたため、これらの 2 つの「エンティティ」は同じ量のテーブルと同じ名前 (Wordpress のインストールに由来するため) を持ちますが、接頭辞が異なります。

Blog1_tabledata1
Blog1_tabledata2
Blog1_tabledata3
Blog1_tabledata4
Blog2_tabledata1
Blog2_tabledata2
Blog2_tabledata3
Blog2_tabledata4

これら 2 つのデータベース (両方とも同じテーブルを使用している) をマージして、同じ Wordpress インスタンスで使用できるようにする必要があることに気付きました (後でタグなどで区切られます)。

これを行う最も簡単な方法は何ですか?

(これは MySQL の観点から質問していることに注意してください - これは Wordpress の質問ではありません!)

4

1 に答える 1

0

絶対にワードプレス ソリューションを探していない場合、それはすべてのドメインを見ているわけではないことを意味します。これは、データが何を意味するのかを見ていないことを意味します。これは問題になる可能性があります。それにもかかわらず:

  1. 外部キーを見つけます。テーブルが InnoDB ではなく MyIsam である場合、テーブルは暗黙的になります。どの ID がどのフィールドを指しているかを調べます。
  2. 1 つの DB から選択し、別の DB に挿入します。これは、1 つのテーブルの行をターゲット データベースに相当するものに追加することを意味します。自動インクリメント行は問題ありません。しかし、外部キー (明示的および暗黙的) フィールドの場合、ここで問題が発生しました。
  3. ユーザーを挿入すると、ユーザーは新しいIDを取得します->古いデータベースでユーザーIDに相当するものを見つけて、正しいIDで外部キーを挿入できるようにする必要があります。これはトリッキーであり、これをワードプレスの質問にしない限り、私たちがあなたに提供できるヘルプはありません: どの行がどうあるべきかを理解するだけです:)。データベース // ドメイン固有です。(つまり、フィールドを見ただけではそれを理解できないということです。フィールドが何を意味するのかを知っている必要があります)
  4. データベースが正しい場合、これは機能するはずですが、重複で問題が発生するかどうかはわかりません (すべて ID を使用する必要があり、手順 3 で一意の接続 ID を使用して修正しました。ただし、ドメインがそうでない場合2 つのアカウント、2 つのページ、または 2 つの何か (タグ?) に同じ名前を付けたい場合は、まだ問題があります. しかし、これはドメイン固有のロジックであり、特にそこに行かないように求めています.
于 2013-01-28T11:32:27.883 に答える