2010-07-24 4 views
0

내 프로그램에서 PostgreSQL 데이터베이스에 액세스하고 있습니다. 지금까지 지정된 테이블은 다양한 작업 (삽입, 업데이트, 삭제)에 의해 변경 얻을 때PSQL 트리거로부터의 일치

내가 정기적으로 데이터베이스를보고 그래서

을 원하지 않는, 내 프로그램에 어떤 신호 또는 메시지를받을 필요,

그래서 나는 트리거를 사용할 수있는 아이디어를 가지고,하지만 난이 얻을 경우

, 트리거에서 (는 C 나 펄 프로그램이 될 수 있습니다) 내 프로그램에 신호 또는 API 또는 메시지를 보내는 방법을 모른다 신호 내가 데이터베이스에서 읽을 것입니다 그리고 내가 업데이 트를 얻을 것이다 API를 얻을 경우 API를 구문 분석하고 u pdate

어떻게하면됩니까?

도와주세요.

답변

3

트리거에서 PostgreSQL의 NOTIFY 문을 사용하고 관심있는 세션에서 LISTEN 문을 호출하도록합니다. LISTEN은 차단되지 않습니다. 그것은 단순히 명명 된 조건에 관심을 등록합니다. 트리거가 동일한 조건 이름을 사용하여 NOTIFY을 호출하면 해당 세션에 비동기 적으로 메시지가 배달됩니다.

Perl에서는 LISTEN 문을 직접 사용하지 않을 것입니다. 예를 들어, DBD :: Pg는 pg_notifies이라는 특정 메커니즘을 제공하여 동일한 효과를냅니다.

+0

내 perl 또는 c 프로그램에 신호를 보낼 수 있는지 여부를 사용합니다. – sganesh

+0

@sganesh : 죄송합니다.하지만 당신이 무엇을 말하려고하는지, 또는 그것이 질문이든 진술인지는 모르겠습니다. –

+0

루프를 필요로하기 때문에 루프를 필요로하기 때문에 이것을 사용하고 싶지 않습니다. 잠깐 (30)을 끼워 넣으면 어떤 행을 삽입해도 즉각적으로 감정을 갖지 못합니다. 30 초 후에 만 ​​얻을 수 있습니다. 그래서 제가 필요합니다. 더 좋은 방법은 – sganesh