熟悉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功能的更多相关文章

  1. mysql定时脚本(event),类似oracle的job

    mysql定时脚本(event),类似oracle的job   我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...

  2. 如何將 MySQL 資料庫轉移到 Microsoft SQL Server 與 Azure SQL Database

    MySQL 是相當常用之資料庫伺服器,而微軟雲端服務 Microsoft Azure 上 Azure SQL Database 是一個功能強大且經濟實惠的選擇,透過本篇文章,使用 SQL Server ...

  3. hibernate mysql 分页时报错 显示的代码和sql server 类似 select top 1……

    [ERROR][com.alibaba.druid.filter.stat.StatFilter]merge sql error, dbType mysql, sql : select top 1 d ...

  4. 说说我对SQL语句执行顺序的理解,以SQL Server为例

    有人说SQL语句难学,其实并不难!只要掌握了基本的语句执行顺序,用程序化的思维分析结构,再难的问题也会迎刃而解! 假设有如下表emp 现在要求 列出员工姓名(ename)中不含A的所有人按照部门编号( ...

  5. SQL Server 执行计划缓存

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/内存池/缓冲区 概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之 ...

  6. 第1/24周 SQL Server 如何执行一个查询

    大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...

  7. SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  8. 了解Sql Server的执行计划

    前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性 ...

  9. 第六篇 SQL Server安全执行上下文和代码签名

    本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...

随机推荐

  1. 机器人操作系统ROS | 简介篇

    同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一周年剪辑视频. ROS已经发布八周年了,在国外科研机构中非常受欢迎.目前,以美国西南研究院为 ...

  2. express4.x中的链式路由句柄

    var express = require("express"); var router = express(); router.get('/', function (req, r ...

  3. 转:Linux内存管理之mmap详解

    一. mmap系统调用 1. mmap系统调用 mmap将一个文件或者其它对象映射进内存.文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零.munmap执行相 ...

  4. _CrtDumpMemoryLeaks报告程序中的内存泄露问题(简单示例代码)

    // .h 文件 #pragma once class CConsoleDump { public: explicit CConsoleDump(LPCTSTR lpszWindowTitle = N ...

  5. 检测客户端显示器分辨率、浏览器类型和客户端IP

    原文:检测客户端显示器分辨率.浏览器类型和客户端IP 下面的代码实现了检测客户端显示器分辨率.浏览器类型和客户端IP的功能.你可以把客户端信息保存到Session,ViewState等中以便在其它的页 ...

  6. Android 解决listview中checkBox错位选择

    假如ListView,分成2页(或者设置数据可以纵向拉,可隐藏),每页3条数据,每个Listview的Item 里面有个checkBox,现在,当我选择第一页的前两天数据,翻到第二页,竟然第二页后两条 ...

  7. 【HDOJ】4972 A simple dynamic programming problem

    水题. #include <cstdio> #include <cstring> #include <cstdlib> int abs(int x) { ? -x: ...

  8. Graphviz-Gdot语言学习

    GVEdit这个绘图软件呢我也是刚接触的,感觉画起图来还是很爽的...尤其很熟悉c++后很容易上手这门dot语言. 先看一下十分清新的编程界面: 没有天下最邪恶的语法加亮,没有缩进行...这又算什么! ...

  9. 【转】ipad死机了,无法退出,也无法关机,怎么办

    原文网址:http://zhidao.baidu.com/link?url=oTz6J78hmtCAKddhwu1ITUiPmLnVJIaA_v_0dZblPaIJUhuMdyTCdS6H2737GX ...

  10. Appnium+python实现手势密码为什么总是报错

    最近一直在尝试Appnium实现Android手机自动化测试,一直一直卡在一个点上,那就是手势密码,因为所测应用的手势密码使用的不是单个的imageview实现的手势密码解锁窗,所以只能靠坐标点来定位 ...