zoukankan      html  css  js  c++  java
  • mysql命令行创建存储过程命令行定时执行sql语句

     mysql -uroot -p
    
    show databases;
    
    use scm;
    
    show tables;
    
    show procedure status;

    其他命令:

    SHOW VARIABLES LIKE 'event_scheduler'; 看事件是否启动【用于定时执行时候检查】


    SET GLOBAL event_scheduler = ON; 命令行开启事件【如果没有开启就手动命令开启】


    SELECT HOST,USER,Event_priv FROM mysql.user; 本机权限

    
    
    【执行存储过程】
    call avgUpdatePice(); 

    命令行创建存储过程执行日志表

    /*============================*/
    /* Table: 存储过程运行日志表结构           */
    /*============================*/
    create table pro_log
    (
       /* 日志编号,自动增长 */
       pro_id                 int not null auto_increment,
       /* 存储过程名字  */
       pro_name               varchar(20),
       /* 存储过程执行产生的信息*/
       pro_remark             varchar(20),
       /* 存储过程执行的时间 */
       pro_date                datetime,
       /* 设置日志编号为主键 */
       primary key (pro_id)
    );

    测试

    insert   into pro_log(pro_name,pro_remark,pro_date) 
    values ('avgUpdatePrice','100','2015-03-09');

    命令行创建存储过程

    delimiter //
    CREATE PROCEDURE avgUpdatePice()
    BEGIN
    DECLARE iCount   INT DEFAULT 0;
     create table avg_prices as
          select goods_id,goods_type,goods_name,in_buy_price,ROUND(sum(in_total_price)/sum(in_amount),2) as 'junjia',NOW(),count(*) from scm.in_warehouse_detail
     group by goods_id,goods_type,goods_name
     order by goods_id,goods_type,goods_name;
        select count(*) into iCount   from goods g,avg_prices a
               where g.goods_Id = a.goods_id
               and g.goods_sel_price != a.junjia
               and g.goods_buy_price != a.junjia;
               if  iCount  > 0 then 
                update avg_prices a,goods g set  g.goods_buy_price = a.junjia 
                where g.goods_Id = a.goods_id and g.goods_sel_price != a.junjia ;
         end if; 
          insert   into pro_log(pro_name,pro_remark,pro_date) values ('avgUpdatePice',iCount,NOW());
     DROP TABLE IF EXISTS avg_prices;
    END; // delimiter ;

    测试【执行存储过程】

    call avgUpdatePice(); 

    命令行创建每日定时自动执行脚本

    -----------------------------每天定时执行存储过程 在命令行里执行一次加入就可以了--------------------------------------------------------------------
    
    CREATE EVENT course_avgUpdatePice
    ON SCHEDULE EVERY 1 DAY STARTS '2016-04-21 21:30:00'
    ON COMPLETION PRESERVE
    ENABLE
    DO
    call avgUpdatePice();
     
     
  • 相关阅读:
    C语言PRO2
    pro5
    自我介绍
    李喆第5次作业
    李喆的作业
    一个队列类的实现(比delphi自带的速度快70倍)
    关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法
    高吞吐量的一个日志函数类_用于IOCP (Delphi)
    PostThreadMessage在线程中应用(以多线程网站数据采集为例)
    微软企业库5 加密篇
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/5418124.html
Copyright © 2011-2022 走看看