我有一個數據庫有多個表(大約100),記錄基於類別存儲。每個類別都是一個表格,每個表格都包含多個項目。每個項目每天都有多個交易記錄,無論何時發生每行有多個字段的交易。For循環中的MySQL順序讀取
我需要根據條件爲每個項目獲取記錄,並在應用程序(PHP或Python程序)中執行一些操作(例如:某種類型的聚合)。結果再次存儲在另一個數據庫表中。
目前我正在爲每個項目手動運行操作。通過傳遞項目作爲參數來執行每個項目的程序。但是我對每天都在獲得新類別和新項目的情況都非常反感,這讓我很難調整手動執行。
下面是我試圖自動化的方法,但都沒有工作。
運行MySQL查詢在for循環中的每個項目,但執行不工作或執行上只有一個項目。 這是我用於爲每個項目提取數據的控制器,但這不會請求所有項目。它只能用於第一件商品或最後一件商品。 此外,我不能讓循環等待,直到數據庫拉動完成。
for($i=0;$i<$total_items;$i++) { $data['results'] = $this->scripts_model-> run_daily_stats($item, $Parameter1, $Paramet2); //Use the Results in some operations, and then proceed with next result set. }
- 創建爲每個項目平面文件並拉出的記錄。這已經成爲現存的一些工作,但基於條件從平面文件中提取記錄似乎也同樣困難。並重新創建每個文件不起作用。
- 將所有項目放入批處理作業中,每30秒添加一行執行一次,但需要很長時間才能完成所有項目,並且我需要每天更新批處理文件。
這是我使用的示例批處理文件。這有320行現在運行約2小時。我每天添加多行。所以預計這會增加總執行時間。
15 12 * * * wget 127.0.0.1/~home/scripts/update_daily/item1 >/dev/null 2>&1
15 12 * * * sleep 30; wget 127.0.0.1/~home/scripts/update_daily/item2 >/dev/null 2>&1
16 12 * * * wget 127.0.0.1/~home/scripts/update_daily/item3 >/dev/null 2>&1
16 12 * * * sleep 30; wget 127.0.0.1/~home/scripts/update_daily/item4 >/dev/null 2>&1
.
.
55 12 * * * wget 127.0.0.1/~home/scripts/update_daily/item234 >/dev/null 2>&1
.
.
.
4. Group multiple Items and put in a batch file, but the unable to run the program for each item.
有沒有一種方法可以在不破壞MySQL連接的情況下自動執行?請提出任何有助於我解決問題的技術或程序。
感謝
拉維
請向我們介紹一下您試過的東西! –