MySQL新版本5.7以上提供了计算了,无需触发器

MySQL新版本5.7以上提供了计算了,无需触发器,第1张

1、触发器是update后激发的,我想你需要的是mysql计划任务

2、计划任务状态

show variables like '%event%'

3、使用下列的任意一句开启计划任务:

SET GLOBAL event_scheduler = ON

SET @@global.event_scheduler = ON

SET GLOBAL event_scheduler = 1-- 0代表关闭

SET @@global.event_scheduler = 1

4、创建event语法

help create event

5、实例

实例0:

每5分钟删除sms表上面ybmid为空白且createdate距现时间超过5分钟的数据。

USE test

CREATE EVENT event_delnull

ON SCHEDULE

EVERY 5 MINUTE STARTS '2012-01-01 00:00:00' ENDS '2012-12-31 00:00:00'

DO

DELETE FROM sms WHERE ybmid='' AND TIMEDIFF(SYSDATE(),createdate)>'00:05:00'

实例1:

每天调用存储过程一次:

mysql>delimiter //

mysql>create event updatePTOonSunday

->on schedule every 1 day

->do

->call updatePTO()

->//

Query OK, 0 rows affected (0.02 sec)

这里updatePTO()是数据库里自定义的存储过程

6、查看任务计划:

SELECT * FROM mysql.event\G

delimiter就是告诉mysql解释器,该段命令是否已经结束了,是否可以执行了。默认情况下,delimiter是分号,遇到分号就执行。后面的双美元符号 就是告诉mysql,遇到双美元符号再执行

mysql中修改命令结束符delimiter的用法:

mysql中的delimiter会告诉MySQL解释器,命令的结束符是什么,默认情况下MySQL的命令是以分号()结束的.在遇到()时,MySQL就可以执行命令了.

看下面例子:

mysql>delimiter $

就是告诉MySQL解释器,当碰到$时,才执行命令.

例1:mysql>select * from temp#回车时就会执行这条语句

例2:mysql>delimiter $

mysql>select * from temp#回车时不会执行

->$#在此回车才会执行上述语句

mysql>delimiter #将命令结束符重新设定为()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8500583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存