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