我可以安排任务在MySQL中以指定的间隔运行吗?
我有一个库存MySQL数据库。结构如下:
table_1 fields: itmcode, avgcost table_2 fields: itmcode(FK to table_1(itmcode)), quantity 该报告的依据是我希望明智地使用库存评估明细项作为过去的日期。
将新购买的商品过帐到系统后,avgcost和quantity字段将更改。我可以运行查询以查看当前的股票估价,但是我也希望能够看到前一天的股票估价。我怎么做?对于数量,我可以添加销售额,并从当前日期向后扣减采购额,直到报告需要的任何日期,但是平均成本是当前的,因为每次发布采购都会更新平均成本。
我想知道是否可以执行每日自动转储,类似于以下内容:
SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode 是否可以直接在MySQL中安排此任务,还是有其他解决方案?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您有2个基本选项(至少):
1,看一下事件调度器
首先创建表,例如。带字段的stock_dumps
商品代码,数量,平均成本,ttlval,转储日期(DATETIME)
CREATE EVENT Dumping_event
ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE ENABLE COMMENT '' DO BEGIN 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; END 请按照说明在上面发布的链接上启用调度程序。注意:旧版本的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来源:stack overflow