MySQL的EVENTS是用来处理计划任务的。MySQL使用称为事件调度线程的特殊线程来执行所有预定事件。默认情况下,事件调度线程是未启用(版本低于8.0.3)的状态,
如要启用它,可以执行以下命令:
> SET GLOBAL event_scheduler = ON ;
> show variables like '%event_scheduler%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
假设不再需要保留一个月之前的薪水审计记录,则可以设定一个每日运行的事件,用它从salary_audit 表中删除一个月之前的记录。 purge [pɜːrdʒ] 净化
# schedule [ˈskedʒuːl] 日程安排
DROP EVENT IF EXISTS purge_salary_audit;
DELIMITER $$
CREATE EVENT IF NOT EXISTS purge_salary_audit ON SCHEDULE
EVERY 1 DAY
STARTS CURRENT_DATE
DO BEGIN
DELETE FROM salary_audit WHERE date_modified < DATE_ADD(CURDATE(),INTERVAL-30 day);
END $$
DELIMITER ;
查看事件:
> SHOW EVENTS\G;
*************************** 1. row ***************************
Db: mysql
Name: purge_salary_audit
Definer: root@localhost
Time zone: SYSTEM
Type: RECURRING
Execute at: NULL
Interval value: 1
Interval field: DAY
Starts: 2018-01-01 02:00:00
Ends: NULL
Status: ENABLED
Originator: 0
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)
要检查事件的定义,可以执行:
> SHOW CREATE EVENT purge_salary_audit \G
***********************************1. row****************************************
Event: event_ _delete_ _de_ records_ 7 days
sq1_ mode: NO_ AUTO_ .CREATE_ USER, NO_ ENGINE_ SUBST
time_ zone : SYSTEM
Create Event: CREATE DEFINER=^ root^ @、localhosti E
STARTS 2018-01-01 02:00:00' ON COMPL ETION NOT PRESERVE
URRENT_ _T IMESTAMP,INTERVAL 7 DAY )
character_ set_client: utf8
collation_ connection: utf8_genera1_ci
Database Collation: utf8_ genera1_ci
1 row in set (0.00sec)
要禁用/启用该事件,可以执行以下操作:
> ALTER EVENT purge_salary_audit DISABLE;
> ALTER EVENT purge_salary_audit ENABLE;
访问控制
所有存储的程序(过程、函数、触发器和事件)和视图都有一个DEFINER //dɪˈfaɪnr// 。如果未指定DEFINER,则创建该对象的用户将被选为DEFINER。
存储例程(包括过程和函数)和视图具有值为DEFINER或INVOKER的SQL SECURITY特性,来指定对象是在definer还是在invoker上下文中执行。触发器和事件没有SQL SECURITY特性,并且始终在definer上下文中执行。服务器根据需要自动调用这些对象,因此不存在调用用户。
标签:salary,audit,--,utf8,purge,事件,mysql,DEFINER From: https://www.cnblogs.com/paopaoT/p/17369528.html