MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作系统提供的定时器的支持了。如linux crontab功能。
创建测试表
CREATE TABLE t
(
v VARCHAR(100) NOT NULL
) ENGINE INNODB DEFAULT CHARSET=utf8;
创建定时器调用的存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS e_test $$
CREATE PROCEDURE e_test()
BEGIN
INSERT INTO t VALUES('1');
END $$
DELIMITER ;
要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1
-- 查看是否开启定时器
SHOW VARIABLES LIKE '%sche%';
-- 开启定时器 0:off 1:on
SET GLOBAL event_scheduler = 1;
-- 创建事件
--每隔一秒自动调用e_test()存储过程
CREATE EVENT IF NOT EXISTS event_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL e_test();
-- 开启事件
ALTER EVENT event_test ON
COMPLETION PRESERVE ENABLE;
-- 关闭事件
ALTER EVENT event_test ON
COMPLETION PRESERVE DISABLE;
SELECT * FROM t;
一些例子:
从现在开始每隔九天定时执行
CREATE EVENT EVENT1
ON SCHEDULE EVERY 9 DAY STARTS NOW()
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
CALL TOTAL();
END
每个月的一号凌晨1 点执行
CREATE EVENT EVENT2
ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
CALL STAT();
END
每个季度一号的凌晨2点执行
CREATE EVENT TOTAL_SEASON_EVENT
ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'-',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
CALL SEASON_STAT();
END
每年1月1号凌晨四点执行
CREATE EVENT TOTAL_YEAR_EVENT
ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 4 HOUR)
ON COMPLETION PRESERVE ENABLE
DO
BEGIN
CALL YEAR_STAT();
END
分享到:
相关推荐
- 解决方法:使用`chown`命令改变文件所有者,如`chown mysql:mysql /var/lib/mysql/mysql/event.MYD`,确保所有MySQL相关文件属于`mysql`用户和组。再用`chmod`命令调整权限,如`chmod 750 /var/lib/mysql/mysql/...
总结,MySQL的Event是数据库自动化运维的重要工具,通过合理配置和使用,可以实现数据库的定时维护和自动化操作,减轻管理员的工作负担。但需要注意权限管理和主从同步的影响,确保系统的稳定运行。
本文将深入探讨MySQL Event的使用,包括如何查看Event状态、设置时区、创建和管理Event。 首先,确认MySQL Event 是否已经开启。可以运行以下SQL查询: ```sql show variables like '%sche%'; ``` 如果`event_...
MySQL中的事件调度器(Event Scheduler)是一个用于在指定时间执行特定任务的功能,它可以周期性地运行SQL语句或语句块,类似于触发器。然而,当事件调度器无法打开mysql.event表时,可能会遇到错误“Event ...
在MySql中,创建一个新的调度器使用CREATE EVENT,其语法规则如下: CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] ...
### MySQL中的ALTER EVENT详解 #### 一、概述 在MySQL中,`EVENT`是一种非常有用的数据库对象,...通过深入理解并熟练掌握`ALTER EVENT`的使用方法,用户可以更加高效地管理数据库任务,提高系统的稳定性和可维护性。
MySQL数据库Event定时执行任务详解是指 MySQL 数据库中使用 Event 功能来实现定时执行任务的方法。Event 是 MySQL 中的一种调度器,能够根据设定的时间间隔执行指定的 SQL 语句或存储过程。 在实际应用中,Event ...
#### 一、卸载MySQL的彻底方法 在尝试重新安装MySQL时,可能会遇到“Could not start the service MySQL. Error:0”的问题,这通常是由于旧版本的MySQL未被完全卸载导致的。为了彻底卸载MySQL,除了通过控制面板的...
在使用MySQL数据库的过程中,可能会遇到“权限不足”的错误提示,这通常是因为当前用户没有足够的权限来执行某些操作(如创建表、删除数据等)。本文将详细介绍如何解决MySQL权限不足的问题,并提供具体的解决方案。...
建议不要将event_scheduler设置为DISABLED,因为它将无法启动事件调度器,需要通过修改配置文件或使用SQL语句将event_scheduler设置为ON或OFF。 创建事件的基本语法如下: ```sql CREATE EVENT [IF NOT EXISTS] ...
1. 使用rpm包安装MySQL 5.5:包括启动、关闭、重启MySQL服务的命令,这是最简单的安装方法,适合初学者快速部署。 - 启动命令:`service mysql start` - 关闭命令:`service mysql stop` - 重启命令:`service ...
### MySQL远程连接配置方法 在实际应用中,我们经常需要让其他主机能够通过网络访问MySQL服务器,这就涉及到MySQL的远程连接配置。 #### 配置MySQL允许远程访问 1. **登录MySQL服务器**:首先确保你能够成功登录到...
- `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL` #### 四、Linux环境下MySQL安装步骤 - **RPM安装方法**: - **检查已安装组件**: - 命令:`rpm -qa | grep -i mysql` ...
在注册表中查找 MySQL 文件夹,可以使用 regedit 打开注册表,然后在 HKEY_LOCAL_MACHINE 目录上进行查找,查找结果将显示在左边栏中,然后可以删除对应的文件夹。 此外,还可以搜索 C 盘,删除 ApplicationData 和...