簡體   English   中英

監視MySQL表以查找C#程序中的更改?

[英]Monitor MySQL table for changes within a C# program?

是否可以監視mysql表以查找ac#application中的更改? 我基本上希望在將數據插入表中時引發事件。 我現在唯一能想到的是每100ms左右查詢一次表。

如果應用程序和數據庫服務器都在同一台機器上,那么您可以在MySQL中設置一個觸發器,該觸發器會在INSERT,UPDATE之后寫入日志文件,然后創建一個FileSystemWatcher來監視該日志文件。 當文件被更改時, FileSystemWatcher將觸發您的應用程序可以響應的事件。

觸發器可能看起來像這樣:

create trigger MyTable_Monitor
after insert, update on MyTable
for each row
begin
select * from new into outfile "path/to/table.log"
end

我在上面的代碼中看到的一個問題是outfile無法附加到(最好我可以告訴),因此如果在一次調用中執行多個查詢(或者甚至是不同客戶端同時執行多個查詢),則可能會遇到問題。 歡迎任何改進建議。

也許可以向表中添加Insert,Update,Delete觸發器來記錄具有兩列的新表中的行。

  1. 行的uid改變了
  2. 更改類型插入/更新/刪除

然后,您訪問此表,它會告訴您具體插入,更新,刪除哪些行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM