2010-04-21 9 views

Odpowiedz

3

Jeśli zarówno aplikacji i serwer bazy danych są na tym samym komputerze może być w stanie ustawić wyzwalacz w MySQL, który zapisuje do pliku dziennika AFTER INSERT, UPDATE, a następnie utworzyć FileSystemWatcher obejrzeć ten plik dziennika. FileSystemWatcher będzie fire events when the file is changed, na który może zareagować twoja aplikacja.

Spust może wyglądać tak:

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

Jeden problem widzę z powyższego kodu jest to, że plik_wy nie mogą być dołączane do (najlepsze, co mogę powiedzieć), więc możesz mieć problemy, jeśli istnieje wiele zapytania wykonywane w jednym wywołaniu (lub nawet wiele zapytań wykonywanych jednocześnie przez różnych klientów). Wszelkie sugestie dotyczące poprawy są mile widziane.

+1

Dzięki. niestety aplikacja C# może nie działać na tym samym komputerze lub mieć dostęp do katalogu dzienników w celu użycia FileSystemWatcher – Brian

0

Może dodać Insert, Update, Delete wyzwalaczy do stołu, aby zalogować wiersz w nowej tabeli z dwoma kolumnami ..

  1. uid z rzędu zmienił
  2. rodzaju zmiana Wstaw/aktualizacja/delete

Następnie uzyskasz dostęp do tej tabeli, która informuje o tym, które wiersze zostały wstawione, zaktualizowane, usunięte.

Powiązane problemy