我最近做项目遇到一个问题就是数据库的的订单需要定时检查自己的订单状态,如果到了endtime字段的时间订单状态还是2,就将订单状态修改为4

在网上找到类似的解决方法。

定时的关键是要结合MySQL的某些时间函数。

如下文:

mysql可以实现定时触发功能,比如说定于某某时间mysql数据库做什么工作,或每隔多长时间做什么工作。

第二种情况应用还是比较广的,比如说我希望每天检查一下我的数据信息,超过一个月的无用信息清除以腾出空间供其他存储数据使用;或者相隔一段时间更新一下数据等等。

下面讨论下这种情况,给出一个例子供大家参考:

1.首先定义一个存储过程取名为e_test,注意竖线(“|”)一定不能丢

DELIMITER |

DROP PROCEDURE IF EXISTS e_test |

CREATE PROCEDURE e_test()

BEGIN

update order set status=1 where to_days(now())-TO_DAYS(date)>=1and status=0;

END

|

假设有一个order表,并且表里有一个status字段和一个date字段,现在将date中的时间距现在时间超过1天的并且状态status=0的这条数据的状态status改成1。

2.创建定时器取名为event_test

SET GLOBAL event_scheduler = 1; CREATE EVENT IF NOT EXISTS event_test

ON SCHEDULE EVERY 1 SECOND

ON COMPLETION PRESERVE

DO CALL e_test();

创建一个定时器,每间隔1秒触发一次事件,即每个一秒执行一次上面定义的e_test这个存储过程。

3.这个是最简单但是也是最重要的,我们要手动的启动这个定时器,要不然是没法工作的。

ALTER EVENT event_test ON

COMPLETION PRESERVE ENABLE;

最后提醒一点,创建存储过程与创建定时器代码要分开执行,否则会报错,暂时还不知道为什么,个人以为这个可能是数据库创建好存储过程需要一定的缓冲时间来做好准备,我们要认为的给他留出这个时间。当然这个时间对数据库来说是一定的时间,但是对于我们来说仅仅是眨眼之间的功夫,只要分开两次执行时间就足够了。

个人的一点体会,希望对大家有帮助。

个别环境哟经常检查show variables like '%event_scheduler%';,确保此数据库权限已开就ok了

开启event_scheduler sql指令:

SET GLOBAL event_scheduler = ON;

SET @@global.event_scheduler = ON;

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

相反,关闭event_scheduler指令:

SET GLOBAL event_scheduler = OFF;

SET @@global.event_scheduler = OFF;

SET GLOBAL event_scheduler = 0;

SET @@global.event_scheduler = 0;

mysql中的竖线怎么用_Mysql event时间触发器,实现定时修改某些符合某一条件的某一字段...相关推荐

  1. Mysql event时间触发器,实现定时修改某些符合某一条件的某一字段

    2019独角兽企业重金招聘Python工程师标准>>> 我最近做项目遇到一个问题就是数据库的的订单需要定时检查自己的订单状态,如果到了endtime字段的时间订单状态还是2,就将订单 ...

  2. mysql中engine是什么意思_mysql中engine=innodb和engine=myisam的区别

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  3. mysql中 or的使用方法_MySQL中or语句的使用方法

    MySQL中or语句的使用方法 发布时间:2020-05-09 10:20:07 来源:亿速云 阅读:112 作者:三月 下文主要给大家带来MySQL中or语句的使用方法,希望这些文字能够带给大家实际 ...

  4. mysql中select是什么意思_MYSQL中select的是详解

    数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from p ...

  5. MYSQL中RAND子句的使用_mysql优化--rand()优化

    众所周知,在mysql中,随机的取10条数据,如:select * from users order by rand() limit 10,效果非常差,因为会多次的执行,如果等值查询用rand()也是 ...

  6. mysql中怎么查询单行单列_MySql中的子查询-结果单行单列

    MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...

  7. 在mysql中怎样设置值唯一_mysql怎么设置行值唯一?

    mysql可通过给行(字段)添加唯一性约束来设置行值唯一,语法格式"CREATE TABLE 表名 (字段名 数据类型 UNIQUE);"和"ALTER TABLE 表名 ...

  8. mysql中存储引擎是啥_mysql中的存储引擎

    mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. ...

  9. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

最新文章

  1. Spring IoC是如何进行依赖注入的
  2. ISME:水库蓝藻影响真核浮游生物的群落演替和物种共存
  3. BZOJ 2561: 最小生成树(最小割)
  4. ipoo3可以用鸿蒙,iqooneo3支持无线充电吗_iqooneo3可以无线充电吗
  5. 【思维】Iranian ChamPions Cup
  6. 《大数据》期刊“农业大数据”专刊征文通知
  7. 老款诺基亚java都市恋爱养成,被“10年前的手机”刷屏了?都是青春和故事啊
  8. async/await剖析
  9. 无锁数据结构--理解CAS、ABA、环形数组
  10. iOS开发之网络深度优化总结
  11. Python:查找天气预报json接口的城市代码(A)
  12. matlab hspice联合仿真,HSPICE TOOLBOX FOR MATLAB
  13. 1237 -- 地盘划分
  14. 终于等到你!江苏9月1日开始软考报名
  15. 华硕h81m一k跳线图_主板跳线接法
  16. java 1 9随机数_Java-随机数详解
  17. 计算机丢失client,FsPiscesClient.dll
  18. vbs脚本实现Ping功能
  19. C语言编程中void什么意思,程序设计中遇到的void到底是什么意思
  20. IP地址分类及子网掩码划分网段详解!!!

热门文章

  1. 机器学习-决策树(Decision Tree)
  2. 样本量过少时,如何科学衡量喜好程度?
  3. 为jupyter_notebook增加目录
  4. 从一个实际的例子触发,理解什么是 Rxjs 的 defer 函数
  5. 手动安装 SAP Spartacus 3.3.0版本并启用服务器端渲染 SSR
  6. SAP Spartacus core模块的单元测试
  7. SAP Spartacus的page请求
  8. SAP CDS view自学教程之八:SAP Fiori Elements里不同类型的annotation
  9. Angular 条件指令 ngIf 的一个例子
  10. SAP Data Intelligence Graph json源代码的结构分析