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();

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM