mysql定时执行及延时执行,实现类似sql server waitfor功能
熟悉SQL Server的人都知道,它有一个很有用的功能,waitfor time和waitfor delay,前者表示在某个时间执行,后者表示等待多长时间执行。在我们测试功能和定时执行的时候特别有用,那么我们在mysql中如何实现呢?
mysql只有一个定时函数,sleep(),我们只能通过这个函数来想办法了。
sleep()说明:
mysql> select id from c;
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
mysql> select sleep(1),id from c;
+----------+------+
| sleep(1) | id |
+----------+------+
| 0 | 1 |
| 0 | 2 |
+----------+------+
2 rows in set (2.00 sec)
sleep(duration),表示等待的时间,参数以秒为单位。可以看出此时的sleep(),代表每次执行则等待1秒,有多少行数便等待多长时间。
延时执行:
有了等待这个概念,要延时就简单了,我们稍微变通下,先执行sleep(1),再执行语句。
mysql> delimiter //
mysql> select sleep(1);
-> select id from c;
-> //
+----------+
| sleep(1) |
+----------+
| 0 |
+----------+
1 row in set (1.00 sec)
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (1.01 sec)
此时可以看到已经实现了等待1秒的效果。
定时执行:
其实,定时执行的话完全可以通过event来实现,但是,追求精简便捷的我们完全不能忍受这么繁琐的步骤,必须在一个界面来实现。
既然有了延时,而我们又知道执行的时间,那我们只需要知道现在距离执行时间有多少秒就能实现了,于是,我们只缺一个计算时间差函数TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)。
此函数类似sql server中的datediff()函数,用法都是一样的。
mysql> set @datestop = '2015-08-21 15:50';
-> set @i = timestampdiff(second,now(),@datestop);
-> select sleep(@i);
-> select now();
-> select id from c;
-> //
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
+-----------+
| sleep(@i) |
+-----------+
| 0 |
+-----------+
1 row in set (1 min 51.00 sec)
+---------------------+
| now() |
+---------------------+
| 2015-08-21 15:50:00 |
+---------------------+
1 row in set (1 min 51.01 sec)
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (1 min 51.03 sec)
mysql定时执行及延时执行,实现类似sql server waitfor功能的更多相关文章
- mysql定时脚本(event),类似oracle的job
mysql定时脚本(event),类似oracle的job 我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...
- 如何將 MySQL 資料庫轉移到 Microsoft SQL Server 與 Azure SQL Database
MySQL 是相當常用之資料庫伺服器,而微軟雲端服務 Microsoft Azure 上 Azure SQL Database 是一個功能強大且經濟實惠的選擇,透過本篇文章,使用 SQL Server ...
- hibernate mysql 分页时报错 显示的代码和sql server 类似 select top 1……
[ERROR][com.alibaba.druid.filter.stat.StatFilter]merge sql error, dbType mysql, sql : select top 1 d ...
- 说说我对SQL语句执行顺序的理解,以SQL Server为例
有人说SQL语句难学,其实并不难!只要掌握了基本的语句执行顺序,用程序化的思维分析结构,再难的问题也会迎刃而解! 假设有如下表emp 现在要求 列出员工姓名(ename)中不含A的所有人按照部门编号( ...
- SQL Server 执行计划缓存
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/内存池/缓冲区 概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之 ...
- 第1/24周 SQL Server 如何执行一个查询
大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...
- SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- 了解Sql Server的执行计划
前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性 ...
- 第六篇 SQL Server安全执行上下文和代码签名
本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...
随机推荐
- MySQL 插入数据时,中文乱码???问题的解决
在终端,mysql -u root -p 登录: show variables like 'character%'; 来查看当前数据库的相关编码集. client 为客户端使用的字符集. connec ...
- Entity Framewor 学习笔记 (include + where)
如果我们想在子查询做过滤的话应该怎样写呢? IEnumerable<Product> products = db.products.Include(p => p.colors.Whe ...
- Entity Framework with MySQL 学习笔记一(验证标签)
直接上代码 [Table("single_table")] public class SingleTable { [Key] public Int32 id { get; set; ...
- Resharper TAB 傻吊
直接把tools中的模板全选删除掉!
- 使用activeMQ实现jms
一:jms介绍 jms说白了就是java message service,是J2EE规范的一部分,跟jdbc差不多,sun只提供了接口,由各个厂商(provider)来进行具体的实现, ...
- AC自动机修正
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #inc ...
- [Operationg System Labs] 我对 Linux0.00 中 boot.s的理解和注释
(如有错误请立即指正,么么哒!) ! boot.s!! It then loads the system at 0x10000, using BIOS interrupts. Thereafte ...
- 【2012天津区域赛】部分题解 hdu4431—4441
1001: 题意:给你13张麻将牌,问可以胡哪些张 思路: 枚举可能接到的牌,然后dfs判断能否胡 1002: 题意: 已知n,m 求 n的所有约数在m进制下的平方和 做法:队长用java高精度写的 ...
- 护肤品总结 Skin Care (1)
很久没有更博了,最近过年在家,就写些生活上面的总结吧- 从护肤品开始,接下来陆陆续续会有化妆品,北美生活购物等. 因为是学生党,所以此帖中的东西基本都是价钱适中.因为经常买买买,所以用的好的坏的都会在 ...
- 深入理解linux网络技术内幕读书笔记(九)--中断与网络驱动程序
Table of Contents 1 接收到帧时通知驱动程序 1.1 轮询 1.2 中断 2 中断处理程序 3 抢占功能 4 下半部函数 4.1 内核2.4版本以后的下半部函数: 引入软IRQ 5 ...