0

私は2つの古いテーブルを持っていて、2つの新しいテーブルを「同期」したい(または新しいテーブルを設定したい)...そのように:

tbl_old_event_categories (id、タイトル)
tbl_old_events (id、タイトル、cat_id)

tbl_new_event_categories (id、カテゴリ)
tbl_new_events (event_id、イベント、category_id)

問題は、新しいテーブルにすでに値が含まれている可能性があることです。したがって、IDは変更されます(おそらく)。ON DUPLICATE KEY UPDATE を使用できないためです。:( レコードごとに個別にチェックする必要があります。テーブルは一意ではありません (それを変更することはできません)。:/

取得する JOIN を作成しました:
tbl_old_fullevents (イベント、カテゴリ) //ID なし (整数)、名前のみ (文字列)

しかし、既存の [イベント] および [カテゴリ] 値をチェックして INSERT INTO [tbl_new_events] を作成する方法は? それは次のようなものです:

    IF(tbl_old_fullevents.event は IN(tbl_new_events.events) ではありません) {
     INSERT INTO new_events 値(
      NULL、//ID
      tbl_old_fullevents.event,
      IF(tbl_old_fullevents.category IN(new_event_categories.categories)) {
       new_event_categories.id //一致
      }
      そうしないと {
       INSERT INTO new_event_categories 値 (
        NULL、//ID
        old_fullevents.category
       );
       new_event_categories.id //最後の INSERT-ID
      }
     );
    }
4

1 に答える 1

1

構文を使用しMERGEます。例については、 http://technet.microsoft.com/en-us/library/bb510625.aspxを参照してください。

ON DUPLICATE KEY UPDATEmysqlなので使えません。

于 2013-08-21T15:08:21.970 に答える