mysql如何实现实时存储_mysql通过event和存储过程实时更新简单Demo

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

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

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

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

需求

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

实现

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

ccd65282e240c6f024110934ffc3422f.png

我们先来创建存储过程

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中操作

5169abd1789812bec3702a05116be7a6.png

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

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

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

db622f5aa4b8d2be8c0ee7c05741640c.png

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

71efaa315ec5bdd761c99ae117fee3b9.png

刷新genderstatiscs表后

f5ce94d53637fae30ff103bf231db12e.png

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值