mysql事件(event)

mysql事件(event)

   张吉吉     2021年2月1日 09:37     347    

一、有关于mysql的函数

1)获取时间函数

NOW()

获取当下的日期和时间

CURDATE()

获取当下的日期

CURTIME()

获取当下的时间

使用语句SELECT NOW(),CURDATE(),CURTIME()测试下。

 

2

date_add(date , INTERVAL expr type)

函数向日期添加指定的时间间隔。

Type的单位MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

比如像获取明天的日期

Select DATE_ADD(CURDATE(),INTERVAL 1 day)

或者获取下个月的日期

select DATE_ADD(CURDATE(),INTERVAL 1 MONTH);

 

二、启动定时任务

查看定时任务是否开启

show variables like '%event_sche%';

临时启动

set global event_scheduler=1;

如果要永久启动的话需要在配置文件中进行更改。

event_scheduler = on

 

三、事件的格式

创建事件
CREATE

  [DEFINER = { user | CURRENT_USER }]

EVENT

  [IF NOT EXISTS]

event_name

ON SCHEDULE schedule

  [ON COMPLETION [NOT] PRESERVE]

  [ENABLE | DISABLE | DISABLE ON SLAVE]

  [COMMENT 'comment']

DO event_body;

 

schedule:

  AT timestamp [+ INTERVAL interval] ...

  |EVERY interval

  [STARTS timestamp [+ INTERVAL interval] ...]

  [ENDS timestamp [+ INTERVAL interval] ...]

 

interval:

  quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

        WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

        DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

 

CREATE    就是创建的意思

DEFINER   事件执行时的用户

EVENT     定义事件的名称,IF NOT EXISTS用来判断事件是否存在,可以不加

ON SCHEDULE  定义事件执行时间,或者执行的时间间隔

ON COMPLETION NOT PRESERVE 定义循环,如果有NOT就只执行一次,没有就循环执行

ENABLE | DISABLE | DISABLE ON SLAVE  事件是活动的还是关闭的

COMMENT   事件注释

DO event_body   执行的语句

 

示例:

每天凌晨三点执行清除leftover_ip_info的语句。

CREATE \

EVENT delete_ip_info \

ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 3 HOUR) \

ON COMPLETION PRESERVE \

COMMENT '每天凌晨三点清空leftover_ip_info' \

DO DELETE from leftover_ip_info;

 

删除事件

drop EVENT if EXISTS  delete_ip_info;

DROP EVENT IF EXISTS 事件名称;

 

查询事件

SELECT * FROM information_schema.events;

或者

show events;

 

启动或者关闭事件

启动

ALTER EVENT delete_ip_info ENABLE;

关闭

ALTER EVENT delete_ip_info DISABLE;

 

 

 


文章评论

0

其他文章