【发布时间】:2011-02-10 18:49:23
【问题描述】:
是否可以在 c# 应用程序中监视 mysql 表的更改?我基本上希望在将数据插入表时引发一个事件。我现在唯一能想到的就是每 100 毫秒左右查询一次表。
【问题讨论】:
是否可以在 c# 应用程序中监视 mysql 表的更改?我基本上希望在将数据插入表时引发一个事件。我现在唯一能想到的就是每 100 毫秒左右查询一次表。
【问题讨论】:
如果应用程序和数据库服务器都在同一台机器上,您可能能够在 MySQL 中设置一个触发器,该触发器在 INSERT、UPDATE 之后写入日志文件,然后创建一个FileSystemWatcher 来监视该日志文件。 FileSystemWatcher 将 fire events when the file is changed 您的应用程序可以做出反应。
触发器可能如下所示:
create trigger MyTable_Monitor
after insert, update on MyTable
for each row
begin
select * from new into outfile "path/to/table.log"
end
我在上面的代码中看到的一个问题是无法将 outfile 附加到(我能说的最好的),所以如果在一次调用中执行了多个查询(或者甚至多个查询由不同的客户端同时执行),您可能会遇到问题.欢迎提出任何改进建议。
【讨论】:
也许在表中添加插入、更新、删除触发器,以在具有两列的新表中记录行..
然后您访问此表,它会告诉您具体插入、更新、删除了哪些行。
【讨论】: