MySQL工作笔记-使用事件和存储过程定时更新某表数据
目錄
?
?
基本概念
演示及源碼
?
基本概念
因為要看某展示軟件的效果,上午用了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;開啟事件!
運行截圖如下:
?
總結
以上是生活随笔為你收集整理的MySQL工作笔记-使用事件和存储过程定时更新某表数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt3D文档阅读笔记-Qt3D老版本知识
- 下一篇: 反汇编基础-MSVC2012,2008,