0

有两个包含以下列的表:

table1 (id1, id2)  //pairs (id1, id2) - are unique 
table2 (id2, name) //id2 - is auto incrementing, name - string 

从 PHP 我有 100-300 对 (id1, name) 必须插入到具有以下条件的表中:

  1. 一些 (id1, id2) 对可能不在 table1 中,但“name”可能已经在 table2 中。在这种情况下,只有 table1 必须用相应的 id1、id2 填充。
  2. 如果 (id1, id2) 对已经在 table1 中 - 那么 table2 中的 'name' 必须更新,如果它不一样。

如何在考虑性能的情况下完成它?

PS:我不能使用外键或熔断表

编辑:这是一个例子,只是为了演示逻辑

给定 100-300 对 (id1,name):

id1   |  name
--------------
 5    |  name0
10    |  name1
20    |  name2
30    |  XXXXX

表 table1 和 table2 要么是空的,要么包含一些记录:

table1:                 table2:
id1   |  id2            id2   |  name
--------------          ----------------
 5    |  0              0     |  name0
      |                 1     |  name1
30    |  2              2     |  YYYYY

插入给定的对后,表应包含:

table1:                 table2:
id1   |  id2            id2   |  name
--------------          ----------------
 5    |  0              0     |  name0      <-not touched
10    |  1              1     |  name1      <-table1 updated
30    |  2              2     |  XXXXX      <-changed name
20    |  3              3     |  name2      <-inserted into both tables
4

0 回答 0