mysqlçå®æ¶ä»»å¡ä¸è¬ç¨event(äºä»¶)æ¥å®æï¼è§¦åå¨æ æ³å®æã
ä¸ãéè¿mysqlçå½ä»¤è¡å®¢æ·ç«¯æ¥å®æ
1ãset global event_scheduler =1; //å¼å¯event_scheduler
æ§è¡è¿ä¸ªè¯å¥å¦æåºç°ï¼å¯å¨mysqlçé
ç½®ææ¡£ä¸è®¾ç½®[mysqld]段ä¸æ·»å event_scheduler=ON
å¦æéå¯mysqlï¼è¿ç§æ
åµä¸ä¾ç¶åºéï¼Error Code: 1290. The MySQL server is running with the --event-scheduler=DISABLED
or --skip-grant-tables option so it cannot execute this statementï¼è¿ä¸ªé误æ¯è¯´å¯å¨æå¡å¨æ¶å¦ææå®äº--skip-grant-tablesé项ï¼åevent_scheduleråèªå¨è¢«è®¾ç½®ä¸ºDISABLEDãå½ä»¤è¡æé
ç½®æ件ç设置é½ä¼è¢«è¦çã建议éç°å®è£
mysqlææ¯ä¿®æ¹å¯å¨åæ°(å¨ç³»ç»æå¡ä¸æå®)ã
æ¥çevent_schedulerç¶æï¼show status like '%event%'; æSELECT @@event_scheduler;
2ãCREATE PROCEDURE Mypro() //å建åå¨è¿ç¨
BEGIN
update userinfo SET endtime = now() WHERE id = '155';
END;
3ãå建event My_enevt,æ¯éä¸åç§æ§è¡ä¸æ¬¡
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call Mypro();
4ãå
³éäºä»¶
alter event e_test ON COMPLETION PRESERVE DISABLE;
5ãå¼å¯äºä»¶
alter event e_test ON COMPLETION PRESERVE ENABLE;
è¯æ³ï¼
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION
[NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement;
schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP]
[ENDS TIMESTAMP] INTERVAL: quantity {YEAR | QUARTER | MONTH | DAY | HOUR |
MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |
HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
温馨提示:答案为网友推荐,仅供参考