mysql 启动事件 启动触发器功能

事件调度器有时也可称为临时触发器(temporal triggers),

因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。

在使用这个功能之前必须确保event_scheduler已开启,可执行

开启:

①(开启事件触发器)

SET GLOBAL event_scheduler = 1;

或我们可以在配置my.ini文件 中加上 event_scheduler = 1

②或

SET GLOBAL event_scheduler = ON;

来开启,也可以直接在启动命令加上“–event_scheduler=1”,例如:

mysqld ... --event_scheduler=1

要查看当前是否已开启事件调度器,可执行如下SQL:

SHOW VARIABLES LIKE ‘event_scheduler‘; 
或 
SELECT @@event_scheduler;

拥有 SUPER 权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。

在使用事件这个功能,首先要保证你的mysql的版本是5.1以上,然后还要查看你的mysql服务器上的事件是否开启。

如果看到event_scheduler为on

或者PROCESSLIST中显示有event_scheduler的信息说明就已经开启了事件。如果显示为off

或者在PROCESSLIST中查看不到event_scheduler的信息,那么就说明事件没有开启,我们需要开启它。

其他:

-- 开启事件调度的支持
SET GLOBAL event_scheduler = 1;
-- 列出事件
SHOW EVENTS;
SHOW CREATE EVENT del_user;
  
-- 查询触发器是否启动。
SHOW VARIABLES LIKE ‘event_scheduler‘; 

-- 定义存储过程  (修改test表里面的id都为5)
DELIMITER //
DROP PROCEDURE IF EXISTS usp_update_test;
CREATE PROCEDURE usp_update_test()
-- expire_interval: the unit is hour
-- delete_per_count: specify the count do every delete operation
BEGIN
    DECLARE id INT;
		SET id=5;   
		update test set id=id;
END //
DELIMITER ;
-- 定义事件  (一分钟执行一次上面的存储过程)
DROP EVENT IF EXISTS del_test;
CREATE EVENT del_test
ON SCHEDULE EVERY 1 MINUTE
DO
CALL usp_update_test()
时间: 2025-01-15 08:05:46

mysql 启动事件 启动触发器功能的相关文章

mysql事件调度器功能

一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作.更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次.对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合. 事件调度器有时也可称为

数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件

浏览目录 视图 触发器 存储过程 函数 事务 数据库锁 数据库备份 事件 一.视图 1.视图概念 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 2.视图特点 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系 视图是由基本表(实表)产生的表(虚表) 视图的建立和删除不影响基本表 对视图内容的更新(添加.删除和修改)直接影响基本表 当视图来自多个基本表时,不允许添加,修改和删除数据 3.视图的本质 视图是根据SQL语句获取动态的数据集,并为其命

MySQL服务无法启动(2003 - Can't connect to MySQL server on‘localhost' (10061).)

学过了SQL Server.Oracle等大型的数据库系统,最近想了解研究一下体积相对较小,功能相对较差MySQL数据库.以前做一些课程设计的时候,都用的是SQL Server和Oracle数据库,现在想想真是大材小用了.于是说干就干,首先下载,这个不费吹灰之力,"mysql-essential-5.1.54-win32.zip"大小只有三十四MB.接下来自然是解压,然后开始安装.对了,我用的系统是Windows7普通家庭版. 安装过程很顺利,而且网上有大量的安装教程.安装完成之后,怀

【转】mysql指定路径启动

/usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/usr --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock 以下内容转:http://chengxuyuan.naxieshir.com/fenlei/2/p/152.html 绝大多数的mysql在启动的时候都要加载一个配置文

mysql二进制安装启动的问题

二进制安装后,启动时出现问题(mysql安装在/application/msyql下): [[email protected] bin]# /etc/init.d/mysqld startStarting MySQL.170320 22:21:51 mysqld_safe The file /usr/local/mysql/bin/mysqlddoes not exist or is not executable. Please cd to the mysql installationdirec

mysql突然无法启动

今天上班,打开测试用的虚拟机,却发现mysql怎么也启动不了.于是,便查看mysql的日志和配置文件.但mysql的错误日志里也没查到什么有用的信息.我们都知道数据库系统,往往是要求最苛刻的应用,它不仅对CPU内存要求苛刻(特别是内存),对硬盘速度(I/O)和大小都有较为苛刻的要求.所以,我就先看了下硬盘空间是否够用.果然,硬盘空间占用率百分之百. 然后,就用du -ms /*命令来查找是哪个目录占用最大.结果看到是/var目录占用了15G,再用du -h --max-depth=1|grep

mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法

总结报错原因:在my.init文件下新增data目录(datadir = F:\mysqldata ) 最新解压版本的mysql 解压安装的时候报错D:\mysql\mysql-5.7.10-winx64\bin>net start mysqlMySQL 服务正在启动 ....MySQL 服务无法启动. 服务没有报告任何错误. 请键入 NET HELPMSG 3534 以获得更多的帮助. mysql下面是没有data文件夹的,此文件夹不需要自己建 D:\mysql\mysql-5.7.10-wi

启动和启动和停止MySQL服务停止MySQL服务

1.  启动MySQL服务 启动MySQL服务的命令为: /etc/init.d/mysqld start 命令执行后如图7-5所示,表示启动MySQL服务成功.   (点击查看大图)图7-5  启动MySQL服务 也可以用/etc/init.d/mysqld的简化命令启动MySQL服务: service mysqld start 命令执行结果如图7-6所示.   (点击查看大图)图7-6  service命令启动MySQL服务 2.  停止MySQL服务 停止MySQL服务的命令为: W/et

MYSQL服务无法启动:InnoDB: .\ibdata1 can't be opened in read-write mode

今天在那做实验倒腾mysql数据库,后来发现服务无法启动,查看日志报错如下: 2015-01-07 17:48:54 9136 [ERROR] InnoDB: .\ibdata1 can't be opened in read-write mode 2015-01-07 17:48:54 9136 [ERROR] InnoDB: The system tablespace must be writable! 2015-01-07 17:48:54 9136 [ERROR] Plugin 'Inn