今天想稍微了解一下存储过程和EVENT事件,最好的方法还是直接做一个简单的demo吧

首先可以在mysql表中创建一个users表 除了设置一些username,password等必要字段以外还要设立sex(性别)

这里规定sex = 1为男 sex = 0 为女

然后建立表格genderstatistics(性别统计表)设立两个字段分别为 boy_count,girl_count(男女生数量)

需求

实现当users表中男女生的数量能实时的显示在genderstatistics表中

实现

我是在navicat12 for mysql中新建一个查询开始的

我们先来创建存储过程

DELIMITER //
-- Drop Procedure update_sex 注意这里不能加()
Create Procedure update_sex()
BEGIN
update genderstatistics set genderstatistics.boy_count = (SELECT COUNT(*) from users where users.sex = 0),genderstatistics.girl_count =(SELECT COUNT(*) from users where users.sex = 1) ;
END;
//
DELIMITER;  

修改的时候一直会报错,所以我这里就直接通过删除(drop)再新建来满足我新的需求

以上存储过程大概表达的是 从users表中查询到男女生的数量并更新到genderstatistics表中

然后我们在来尝试建立EVENT

CREATE EVENT IF NOT EXISTS update_boysex
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE ENABLE COMMENT '时刻更新男女生的数量'
Do
BEGIN
Call update_sex();
END

 这里呢是直接在新的查询中创建事件的,你可以直接在Navicat的Event中操作 

当然这样的话写法也会不一样了

好的我们接下来来简单的试验一下吧

当前的男女生数量在genderstatistics表中显示为

我们往users表添加任意数量的男生女生

刷新genderstatiscs表后

再不断的修改或添加或删除users的男生女生人数,不断试验,发现有效。

好啦,简单的利用event和存储过程来操作数据表的实现实时更新的demo就完成啦。

mysql通过event和存储过程实时更新简单Demo的更多相关文章

  1. MySQL 实现将一个库表里面的数据实时更新到另一个库表里面

    MySQL 实现将一个库表里面的数据实时更新到另一个库表里面 需求描述:MySQL 里面有很多的数据库,这些数据库里面都有同一种表结构的表 (tb_warn_log),这张表的数据是实时更新的,现在需 ...

  2. WebSocket 实时更新mysql数据到页面

    使用websocket的初衷是,要实时更新mysql中的报警信息到web页面显示 没怎么碰过web,代码写的是真烂,不过也算是功能实现了,放在这里也是鞭策自己,web也要多下些功夫 准备 引入依赖 & ...

  3. sparkStreaming插入mysql 必须考虑到实时更新老的key

    原先使用批次提交更新 但数据库无变化,不得不一条一条的插入 公司数据量不大  还未做数据量大的测试 但实时更新是可以的 关键sql : insert into area_user_amt (date, ...

  4. MYSQL的存储过程和函数简单写法

    存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] ro ...

  5. mysql定时任务(event事件)

    1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...

  6. mysql创建定时执行存储过程任务

    sql语法很多,是一门完整语言.这里仅仅实现一个功能,不做深入研究. 目标:定时更新表或者清空表. 案例:曾经做过定时清空位置信息表的任务.(然而,当时并未考虑服务器挂掉后的情况) 本次测试:每5s更 ...

  7. sphinx通过增量索引实现近实时更新

    一.sphinx增量索引实现近实时更新设置 数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少. 例如.原来的数据 ...

  8. sphinx 增量索引 实现近实时更新

    一.sphinx增量索引的设置   数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条 ...

  9. python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原

    ###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...

随机推荐

  1. ubuntu 和 CentOS 安装docker

    一.ubuntu14.04 安装docker 1 apt-get update2 apt-get update-grup3 reboot4 检查mapper的安装:ls -l /sys/class/m ...

  2. UITableViewCell 的复用机制

    cell重用机制 http://blog.cnrainbird.com/index.php/2012/03/20/guan_yu_uitableview_de_cell_fu_yong_tan_tan ...

  3. java线程基础知识----SecurityManager类详解

    在查看java Thread源码的时候发现一个类----securityManager,虽然很早就知道存在这样一个类但是都没有深究,今天查看了它的api和源码,发现这个类功能强大,可以做很多权限控制策 ...

  4. jquery 操作表格实例

    案例1:隔行变色,滑动,点击变色以(选中取消效果)(addClass(),removeClass(),toggleClass()) Html: <h4>1.隔行变行</h4> ...

  5. SAS笔记(7) PROC SQL

    参考资料:<Longitudinal Data and SAS: A Programmer's Guide>

  6. cogs 2123. [HZOI 2015] Glass Beads

    2123. [HZOI 2015] Glass Beads ★★★   输入文件:MinRepresentations.in   输出文件:MinRepresentations.out   简单对比时 ...

  7. 源代码实现一个binary例子

    一.源代码实现一个binary例子 1.例子描述 (1) 数据描述 输入数据X是二进制的一串序列, 在t时刻,有50%的概率是1,50%的概率是0,比如:X=[1,1,0,0,1,0.....]输出数 ...

  8. P1168 中位数(对顶堆)

    题意:维护一个序列,两种操作 1.插入一个数 2.输出中位数(若长度为偶数,输出中间两个较小的那个) 对顶堆 维护一个小根堆,一个大根堆,大根堆存1--mid,小根堆存mid+1---n 这样堆顶必有 ...

  9. vue2格式化时间戳

    注意:时间戳分为10位和13位的,10位的是秒,13位的是毫秒 这里给出的是格式化13位的方法,10位的时间戳可以加上3个0 <div id="app">{{time ...

  10. Leetcode初级算法(链表篇)

    删除链表的倒数第N个节点 感觉自己对于链表的知识还是了解的不够深入,所以没有想到用双指针进行操作.我的想法是这样的,首先计算整个链表的长度,然后遍历到长度减去n的节点处,执行删除操作. 自己的代码: ...