首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调度MySQL查询?

问如何调度MySQL查询?
EN

Stack Overflow用户
提问于 2012-03-09 00:42:07
回答 2查看 90.7K关注 0票数 31

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

代码语言:javascript
复制
table_1            fields: itmcode, avgcost
table_2            fields: itmcode(FK to table_1(itmcode)), quantity

报告的基础是我需要过去日期的库存估值明细项目的时间。

我可以运行一个查询来查看当前的股票估值,但我也希望能够看到之前某个日期的股票估值。我该怎么做?对于数量,我可以添加销售,并从当前日期到报告要求的任何日期反向扣除购买,但平均成本是最新的,因为每次发布购买都会更新。

代码语言:javascript
复制
SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval
FROM table_1 
JOIN table_2 ON table_1.itmcode = table_2.itmcode

是否可以直接在MySQL中调度此任务,或者是否有其他解决方案?

EN

回答 2

Stack Overflow用户

发布于 2012-03-10 17:10:10

您至少有两个基本选项:

1、看看Event Scheduler

首先创建表格,例如。带字段的stock_dumps

项目代码,数量,平均成本,ttlval,dump_date (日期时间)

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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;

调度此命令:

代码语言:javascript
复制
mysql -uusername -ppassword < /path/to/sql_file.sql
票数 54
EN

Stack Overflow用户

发布于 2017-01-02 01:48:05

有一些通用工具可以做到这一点,比如EyeShare或AutoSQL.net。EyeShare是一种更通用的IT流程自动化工具,而AutoSQL是专门用于调度查询并将其输出(到Excel或CSV)的单一用途工具。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9621355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档