mysql定時任務(event事件)

1.event事件mysql

  • 事件(event)是MySQL在相應的時刻調用的過程式數據庫對象。一個事件可調用一次,也可週期性的啓動,它由一個特定的線程來管理的,也就是所謂的「事件調度器」    
  • 事件和觸發器相似,都是在某些事情發生的時候啓動。當數據庫上啓動一條語句的時候,觸發器就啓動了,而事件是根據調度事件來啓動的,事件也稱爲臨時性觸發器
  • 事件取代了原先只能由操做系統的計劃任務來執行的工做,並且MySQL的事件調度器能夠精確到每秒鐘執行一個任務,而操做系統的計劃任務(如:Linux下的CRON或Windows下的任務計劃)只能精確到每分鐘執行一次

2.建立事件sql

  • 事件由兩個主要部分組成,第一部分是事件調度(event schedule),表示事件什麼時候啓動以及按什麼頻率啓動,第二部分是事件動做(event action ),這是事件啓動時執行的代碼,事件的動做包含一條SQL語句,它多是一個簡單地insert或者update語句,也可使一個存儲過程或者 benin...end語句塊,這兩種狀況容許咱們執行多條SQL
    • sql語句建立事件:
      • 每隔10秒往數據庫插入一條數據

    • navicat建立事件:
      • 右鍵新建事件:

 


      • 編寫須要執行的sql語句

 

      • 設置計劃任務

 

  • 一個事件能夠是活動(打開)的或中止(關閉)的,活動意味着事件調度器檢查事件動做是否必須調用,中止意味着事件的聲明存儲在目錄中,但調度器不會檢查它是否應該調用。在一個事件建立以後,它當即變爲活動的(ENABLE),一個活動的事件能夠執行一次或者屢次

3.開啓關閉事件調度器數據庫

  • MySQL事件調度器event_scheduler負責調用事件,它默認是關閉的。這個調度器不斷地監視一個事件是否要調用, 要執行事件,必須打開調度器
  • 查看當前是否已開啓事件調度:SHOW VARIABLES LIKE 'event_scheduler';
  • 開啓事件計劃;鍵值1或者ON表示開啓;0或者OFF表示關閉:SET GLOBAL event_scheduler = ON;或者經過配置文件my.cnf:event_scheduler = 1 #或者ON

4.查看、修改和刪除事件spa

  • 查看事件
    • 查看當前所在庫的事件:show events;
    • 查看全部事件:select * from mysql.event;
  • 修改事件:修改事件的定義和屬性
    • 開啓某事件:ALTER EVENT auto_del_students ON COMPLETION PRESERVE ENABLE;
    • 關閉某事件:ALTER EVENT auto_del_students ON COMPLETION PRESERVE DISABLE;
    • 修改事件名:ALTER EVENT auto_del_students RENAME TO auto_del_students1;
    • 修改執行形式:every或者at
  • 刪除事件:DROP EVENT [IF EXISTS] event_name

5.調用存儲過程操作系統

  • 建立的存儲過程

  • 建立任務調度的事件(調用存儲過程)

相關文章
相關標籤/搜索