• 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();
     
     
  • 相关阅读:
    Apache 安装 静态编译 动态编译
    Vlan 间路由的方法
    一个无限加载瀑布流jquery实现
    用ajax查询天气
    一个简单移动页面ionic打包成app
    时隔一年再读到the star
    轮播图原生js实现和jquery实现和js面向对象方式实现
    js实现一个简单计算器
    纯css3图片旋转展示
    自定义按钮~自适应布局~常见bug
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/5418124.html
Copyright © 2020-2023  润新知