2012-07-26 67 views
0

我需要用PHP更新MySQL中的兩個表。第二個表需要插入到第一個表中的行的ID。更新MySQL中的相關表格

目前我通過這個過程對每個陣列中物品的循環一些PHP代碼:

  1. 檢查是否通過嘗試得到它的ID存在的記錄。
  2. 如果記錄不存在,請插入它並獲取最後一個插入ID。
  3. 使用我們找到的ID作爲外鍵更新第二個表。

這是非常低效的多個數據庫調用。我寧願將數據存儲在兩個數組中,一個用於每個表,然後在循環完成時批量插入它們。問題是我需要在第一個表中獲得該行的ID,然後才能執行此操作。

這是我遇到的很多問題。這樣做的最有效/最好的做法是什麼?

謝謝

+0

可以執行下列步驟操作: 1.批量插入記錄的表2中記錄表1 2.批量更新(需要的標準是匹配的記錄從表1中關係從表2的記錄) – 2012-07-26 09:13:26

回答

0

創建一個服務器的呼叫將整個層次的存儲過程。將所有父子記錄作爲XML提供,並在程序中解析/插入記錄(afaik MySql應具有類似於MS SQL的XML函數)。這將導致相同數量的INSERT語句,但是它們將在服務器端執行,這應該會提高性能。例如。

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