我有一个数据库有多个表(大约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连接的情况下自动执行?请提出任何有助于我解决问题的技术或程序。
感谢
拉维
请向我们介绍一下您试过的东西! –