Mysql怎么启动事件_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()

原文:http://jianboli.blog.51cto.com/12075002/1884180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值