Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Monitorar a tabela MySQL para alterações em um programa C #?


Se o aplicativo e o servidor de banco de dados estiverem na mesma máquina, você poderá configurar um gatilho no MySQL que grava em um arquivo de log APÓS INSERT, UPDATE e, em seguida, crie um FileSystemWatcher para assistir a esse arquivo de log. O FileSystemWatcher disparará eventos quando o arquivo é alterado que seu aplicativo pode reagir.

O gatilho pode ser algo assim:
create trigger MyTable_Monitor
after insert, update on MyTable
for each row
begin
select * from new into outfile "path/to/table.log"
end

Um problema que vejo com o código acima é que o arquivo de saída não pode ser anexado (o melhor que posso dizer), então você pode ter problemas se houver várias consultas executadas em uma chamada (ou mesmo várias consultas executadas simultaneamente por clientes diferentes). Quaisquer sugestões de melhoria são bem-vindas.