MySQLストアド・プロシージャとタイミング・タスク

977 ワード

自分で書いたMySQLの簡単なストレージプロセスとタイミングタスクを記録します.
統計は何個のappがあります
/*        */
/*    appStatus:     */
DELIMITER $$
CREATE PROCEDURE `appStat`(IN appStatus int)
BEGIN
        declare countNum int;
SELECT 
    COUNT(*)
INTO countNum FROM
    app_info
WHERE
    app_info.status = appStatus;
/*         */
insert into app_stats(quantity,stat_time,stat_type,status) values(countNum,now(),1,appStatus);
END$$
DELIMITER ;

統計タイミングタスク
/*        */
set global event_scheduler =1;/*      */
create event if not exists e_app  
on schedule every 1 day starts '2017-01-09 00:00:00'  /*      */
on completion preserve  /*    */
do call appStat(0);  /*     */

スケジュールタスクの停止と削除
      :
alter event e_app ON COMPLETION PRESERVE DISABLE;
      :
alter event e_test ON COMPLETION PRESERVE ENABLE;
      :
DROP EVENT IF EXISTS e_test;

参考ドキュメント:mysqlタイミングタスクの簡単な例私のMYSQL学習心得(十)カスタムストレージプロセスと関数MySQLストレージプロセス