是否可以监视mysql表以查找c#应用程序中的更改?我基本上希望在将数据插入表中时引发事件。我现在唯一能想到的就是每100ms左右查询一次表。
答案 0 :(得分:3)
如果应用程序和数据库服务器都在同一台机器上,您可以在MySQL中设置一个触发器,该触发器在插入,更新后写入日志文件,然后创建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无法附加到(最好我可以告诉),因此如果在一次调用中执行多个查询(或者甚至是不同客户端同时执行多个查询),则可能会出现问题。欢迎任何改进建议。
答案 1 :(得分:0)
也许将Insert,Update,Delete触发器添加到表中以记录具有两列的新表中的行..
然后您访问此表,它会告诉您具体插入,更新,删除哪些行。