Rumah  >  Artikel  >  pangkalan data  >  MySQL事件的使用详解

MySQL事件的使用详解

黄舟
黄舟asal
2017-08-01 17:14:084645semak imbas

在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。这个时候就会用到mysql事件,使用这个功能必须保证是mysql的版本是5.1以上。

1.首先要查看事件是否开启了,

SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
SHOW PROCESSLIST;

之星sql

1.png

2.我们先开启mysql事件,1,通过动态参数修改:SET GLOBAL event_scheduler = ON;注意:还是要在my.cnf中添加event_scheduler=ON。因为如果没有添加的话,mysql重启事件又会回到原来的状态了。

2.png

3.下面我创建一个测试的数据库表,

CREATE TABLE `test` (  
`ID` int(11) NOT NULL AUTO_INCREMENT,  
`lpnam` datetime DEFAULT NULL,  
PRIMARY KEY (`id`))
ENGINE=InnoDB 
AUTO_INCREMENT=106 
DEFAULT CHARSET=utf8

创建一个数据库表做为测试

3.png

4.下面我们创建mysql事件,

CREATE EVENT IF NOT EXISTS test123 ON SCHEDULE EVERY 3 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO ceshisy(lpname) VALUES(NOW());

执行sql创建mysql事件

4.png

5.创建完成以后我们看一次是不是执行了,查看一下数据库表

5.png

6.总结一下语法:

DEFINER: 定义事件执行的时候检查权限的用户。
ON SCHEDULE schedule: 定义执行的时间和时间间隔。
ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。
COMMENT 'comment': 定义事件的注释。


Atas ialah kandungan terperinci MySQL事件的使用详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn