更新MySQL中的相关表

时间:2012-07-26 09:02:38

标签: php mysql sql database

我需要用PHP更新MySQL中的两个表。第二个表需要在第一个表中插入行的ID。

目前我有一些PHP代码为数组中的每个项循环遍历此过程:

  1. 通过尝试获取其ID来检查记录是否存在。
  2. 如果记录不存在,请插入并获取最后一个插入ID。
  3. 使用我们作为外键找到的ID更新第二个表。
  4. 由于进行了多次数据库调用,因此效率非常低。我宁愿将数据存储在两个数组中,每个表一个,然后在循环完成时批量插入它们。问题是我需要先获取第一个表中行的ID才能执行此操作。

    这是我经常遇到的一个问题。这样做的最有效/“最佳实践”方式是什么?

    谢谢

1 个答案:

答案 0 :(得分:0)

创建用于在一个服务器调用中插入整个层次结构的存储过程。将所有父子记录作为XML提供并解析它/在过程中插入记录(afaik MySql应该具有类似于MS SQL的XML函数)。这将导致相同数量的INSERT语句,但它们将在服务器端执行,这将提高性能。 E.g。

exec MySp @myHierarchy = '<Recs><Parent Name="P1"><Child Name="C1" /><Child Name="C2"/></Parent></Recs>'