2010-07-24 21 views
0

在我的程序中,我正在訪問Postgresql數據庫。來自PSQL觸發器的暗示

我不想經常看數據庫,

所以當曾經指定的表中獲取的各種動作(插入,更新,刪除)改變, 我需要一些信號或消息給我的程序,

所以,我有一個想法,使用觸發器,但我不知道如何發送信號或API或消息,我的程序(可以是C或Perl程序)從觸發,

如果我得到的信號我會從數據庫讀取,我會得到更新, 如果我得到的API我會解析API,並得到你更新

我該怎麼做?

請幫幫我。

回答

3

在觸發器中使用PostgreSQL的NOTIFY語句,並讓感興趣的會話調用LISTEN語句。 LISTEN不會阻止。它只是在一個命名條件中註冊興趣。當觸發器使用相同的條件名稱調用NOTIFY時,消息將異步傳遞到該會話。

在Perl中,您可能不會直接使用LISTEN語句。例如,DBD :: Pg提供了一個特定的機制pg_notifies,以達到相同的效果。

+0

使用這個是否可以發送信號給我的Perl或C程序。 – sganesh 2010-07-24 05:30:16

+0

@sganesh:對不起,我不知道你在說什麼,甚至不知道是問題還是陳述。 – 2010-07-24 05:40:42

+0

我不想使用它,因爲它需要循環,如果我插入睡眠(30)之間的時間,如果我插入任何行我不能立刻得到暗示,30秒後只有我可以得到, 所以我需要更好的方法, – sganesh 2010-07-24 05:50:51