繁体   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