我有一个包含多个表(大约100个)的数据库,其中记录基于类别存储。每个类别都是一个表格,每个表格包含多个项目。每当每个行的多个字段发生交易时,每个项目都有多个交易记录。
我需要根据条件获取每个项目的记录,并在应用程序(PHP或Python程序)中执行一些操作(例如:某种聚合)。结果再次存储在另一个数据库表中。
目前我正在为每个Item手动运行操作。通过将项目作为参数传递来执行每个项目的程序。但是我反对每天都有新的类别和新项目的情况,这让我很难调整手动执行。
以下是我尝试自动化的方式,但没有一种方法可以正常工作。
在每个项目的for循环中运行MySQL查询,但执行不起作用或仅在一个项目上执行。 这是我用于为每个项目提取数据的控制器,但这并不要求所有项目。它只适用于第一项或最后一项。 此外,我不能让循环等到数据库拉完成。
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.
}
这是我正在使用的示例批处理文件。现在有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连接的情况下自动执行?请提供有助于我解决问题的任何技术或程序。
由于
拉维
答案 0 :(得分:0)
在考虑这个问题之前,我建议您重新检查一下数据库的结构。如果你有100个具有相同结构(?)的表,每个表代表一个不同的类别,那么使用一个附加category
列的单个表可以更简单,然后您可以使用该表来查询相关的行。
由于你没有显示你所描述的代码,所以任何人都很难说你可能做错了什么,因为我们所知道的就是你尝试过的东西&#34; don&# 39;工作&#34;。