搜尋

首頁  >  問答  >  主體

mysql - 如何观察数据库中某个表是否增加了一条记录

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

黄舟黄舟2873 天前906

全部回覆(3)我來回復

  • 高洛峰

    高洛峰2017-04-17 11:30:29

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

    方法1

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

    方法2

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:30:29

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

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

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 11:30:29

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

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

    回覆
    0
  • 取消回覆