MySQL棘手的多行插入/更新到两个表中

时间:2013-05-19 07:39:48

标签: php mysql insert-update multiple-tables multiple-records

有两个表格包含以下列:

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. if(id1,id2)对已经在table1中 - 那么table2中的'name'必须更新,如果它不相同的话。
  3. 如何以性能为目标来实现它?

    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
    

0 个答案:

没有答案