mysql - 如何观察数据库中某个表是否增加了一条记录
黄舟
黄舟 2017-04-17 11:28:29
0
3
874

如题,数据库用的是MySQL。其中某个表一直以周期性添加一条数据。
目前用的是轮询的方式。
题主想知道数据库是否支持类似于Java中观察者模式,当数据库添加记录后,就会自动触发某个自定义函数?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(3)
小葫芦

以下,答案都是建立在主表資料量超大的基礎上。

方法1

(1) 使用mysql觸發器
(2) mysql是可以運行外部腳本(可能跟使用者權限和平台有關),透過腳本觸發後端程式

方法2

(1) 使用mysql觸發器
(2) 觸發到資料後,將資料寫入記憶體表
(3) 後端程式輪詢記憶體表,處理完成後,刪除已經輪詢的數據,防止記憶體表爆掉

洪涛

你的思路最好的解決方法應該是Hook,做個鉤子給MySQL,當資料庫改變了就執行鉤子程式。不過我搜了一下對於給資料庫直接增加Hook好像沒什麼好的想法。
唯一看到可行的辦法是:使用Git管理你的MySQL資料庫,當資料庫檔案改變的時候透過Git呼叫Hook。雖然可行,不過覺得略Geek了一點。

所以感覺比較簡單的思路還是從你的程式上思考,當程式執行了資料庫操作類別中的insert()函數後執行某個Hook函数。也就是說不給資料庫加鉤子,而給程式的資料庫操作類別加鉤子。

小葫芦

触发器能不能達到你的需求呢? ?

當執行insert的時候,就觸發。 。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板