2010-04-21 19 views

Trả lời

3

Nếu cả ứng dụng và máy chủ cơ sở dữ liệu đều trên cùng một máy, bạn có thể thiết lập trình kích hoạt trong MySQL ghi vào tệp nhật ký SAU CH INSN, CẬP NHẬT và sau đó tạo FileSystemWatcher để xem tệp nhật ký đó. FileSystemWatcher sẽ fire events when the file is changed mà ứng dụng của bạn có thể phản ứng.

Trigger có thể trông như thế này:

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

Một vấn đề tôi thấy với các mã trên là outfile không thể được nối vào (tốt nhất tôi có thể nói), do đó bạn có thể có vấn đề nếu có nhiều các truy vấn được thực hiện trong một cuộc gọi (hoặc thậm chí nhiều truy vấn được thực hiện đồng thời bởi các máy khách khác nhau). Bất kỳ đề xuất cải tiến đều được hoan nghênh.

+1

Cảm ơn. Rất tiếc, ứng dụng C# có thể không chạy trên cùng một máy hoặc có quyền truy cập vào thư mục nhật ký để sử dụng FileSystemWatcher – Brian

0

Có lẽ thêm Insert, Update, Delete trigger để bảng để đăng nhập hàng trong một bảng mới với hai cột ..

  1. uid của hàng thay đổi
  2. loại thay đổi insert/update/delete

Sau đó, bạn truy cập bảng này và nó cho bạn biết cụ thể những hàng nào đã được chèn, cập nhật, đã xóa.

Các vấn đề liên quan