开发者社区 问答 正文

如何安排MySQL查询??mysql

我可以安排任务在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中安排此任务,还是有其他解决方案?

展开
收起
保持可爱mmm 2020-05-13 14:31:01 366 分享 版权
1 条回答
写回答
取消 提交回答
  • 您有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

    2020-05-13 14:31:10
    赞同 展开评论