2012-02-23 2 views
0

예를 들어 SQL 데이터베이스와 3 자로부터 피드를 내 데이터베이스로 업데이트합니다 (매번 업데이트).데이터베이스에서 알림 얻기

select * form table Bonus > 50%

내가 윈도우 서비스를 사용하고 모든 데이터베이스를 확인하거나 내가 SQL에서 설정할 수 있습니다 및 SQL에서 경고를 얻을까요 : 나는 경우 examle처럼 내 응용 프로그램에 알림을해야합니까? 가능한 한 빨리 알림을 받아야하므로 1 ~ 5 초마다 데이터베이스를 확인하는 것이 너무 어려울 것입니다.

답변

3

이는 데이터베이스에 따라 다릅니다. 거의 모든 데이터베이스는 데이터가 변경 될 때 트리거를 실행할 수 있지만 트리거 내의 코드는 대개 SQL (연결 열기 등을 지원하지 않음)입니다.

일부는 Oracle과 마찬가지로 트리거를 허용하며 Java 코드도 실행할 수 있습니다. 여기서 데이터베이스 내부에 솔루션을 구축 할 수 있습니다.

그러나 단점이 있습니다. 신호를 보낼 수없는 경우 어떻게됩니까? 전체 트랜잭션을 롤백해야합니다 (상대적으로 관련이없는 다른 서비스를 손상시킬 수 있습니다.)

일반적인 솔루션은 매 시간마다 해당 쿼리를 실행하는 코드를 작성한 다음 조건이 충족 될 때 신호를 보냅니다.

쿼리가 비싸면 두 가지를 혼합 할 수 있습니다 : 트리거를 사용하여 무언가가 변경되었을 때만 쿼리를 실행하고 테이블에 결과를 저장합니다 (예 : "$ timestamp"에 발생한 일). 앱에서 마지막 신호 이후에 업데이트가 있었는지 확인하십시오.

관련 문제