MySQL工作笔记-使用事件和存储过程定时更新某表数据

106 篇文章 8 订阅

目录

 

 

基本概念

演示及源码


 

基本概念

因为要看某展示软件的效果,上午用了Qt实时对表进行更新操作!

这是非常low的表现。其中的一个原因就是效率问题!

 

Qt工作笔记-Qt连接Mysql数据库,检索及修改表数据

https://blog.csdn.net/qq78442761/article/details/88592455

 

这里可以使用存储过程,对表进行批量更新!

然后再用事件,设置一个每秒刷新,是不是感觉很爽歪歪!

 

下面给出使用存储过程的优势!

                   1.可增强SQL语言的功能和灵活性

                   2.良好的封装性

                   3.高性能

                   4.可减少网络流量

                   5.存储过程可以作为一种安全机制来确保数据库的安全性和数据的完整性

【回忆这个,还是我大二的时候考计算机二级mysql学过的,如今终于在项目中用到了,不容易啊,看来大学里面的东西还是很有用的,只是没有项目进行实践,而工程学科,实践>理论】

 

演示及源码

有如下两个表:

两张表结构分别如下:

目前表中存在的数据有!

现在来写一个存储过程,实现输入一个id,对2张表中指定id进行更新!

delimiter $$
create procedure spUpdateValue(in cid int)
begin
update datasample set value=RAND()*99999 where idval=cid;
update circle set isRun=RAND()*1 where id=cid;
end $$
delimiter ;

运行截图如下:

调用下看看,然后在看看数据变了没!

从这里可以发现的确是更新了,现在修改下存储过程,实现批量更新!

这里只要把限定符去掉就可以了!

delimiter $$
create procedure spUpdateValue()
begin
update datasample set value=RAND()*99999;
update circle set isRun=RAND()*1;
end $$
delimiter ;

运行截图如下:

这里现在来写一个事件,让其每秒调用一次存储过程!

create event updateEvent
on schedule every 1 second
on completion PRESERVE
do call spUpdateValue;


当为on completion preserve 的时候,当event到期了,event会被disable,但是该event还是会存在
当为on completion not preserve的时候,当event到期的时候,该event会被自动删除掉.。

 

这里要注意,mysql默认是不会开启事件,需要输入

set global event_scheduler=on;

开启事件!

运行截图如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值