如何安排MySQL查询?

如何安排MySQL查询?,mysql,scheduled-tasks,Mysql,Scheduled Tasks,我可以在MySQL中安排任务以指定的时间间隔运行吗 我有一个清单MySQL数据库。结构如下: table_1 fields: itmcode, avgcost table_2 fields: itmcode(FK to table_1(itmcode)), quantity 该报告的基础是我想要过去日期的存货估价明细 将新采购过帐到系统中时,avgcost和quantity字段将更改。我可以运行查询以查看当前的股票估值,但我也希望能够查看以前日期的股

我可以在MySQL中安排任务以指定的时间间隔运行吗

我有一个清单MySQL数据库。结构如下:

table_1            fields: itmcode, avgcost
table_2            fields: itmcode(FK to table_1(itmcode)), quantity
该报告的基础是我想要过去日期的存货估价明细

将新采购过帐到系统中时,
avgcost
quantity
字段将更改。我可以运行查询以查看当前的股票估值,但我也希望能够查看以前日期的股票估值。我该怎么做?对于数量,我可以添加销售并从当前日期向后扣除采购,直到报告要求的任何日期,但avgcost是最新的,因为每次发布采购时都会更新

我想知道是否可以执行自动每日转储,类似于:

SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval
FROM table_1 
JOIN table_2 ON table_1.itmcode = table_2.itmcode
此任务是否可以直接在MySQL中调度,或者是否有其他解决方案?

您有两个基本选项(至少):

1、看一看

首先创建表,例如带有字段的库存转储

项目代码、数量、平均成本、ttlval、转储日期(日期时间)

请按照说明如何在上面发布的链接上启用计划程序。 注意:mysql的旧版本没有事件调度器

2、创建cron作业/windows计划作业:

创建sql文件:

INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
mysql -uusername -ppassword < /path/to/sql_file.sql
计划此命令:

INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
mysql -uusername -ppassword < /path/to/sql_file.sql
mysql-uusername-ppassword
有一些通用工具可用于此操作,如或。EyeShare是一种更通用的IT流程自动化工具,AutoSQL是一种专用工具,专门用于安排查询并将其输出(到Excel或CSV)

MySQL支持事件调度器的最低版本是什么“MySQL 5.1.6中添加了事件支持”