2012-06-20 31 views
-1

我有一個更新幾個表的函數。舉個例子,假設它類似於:從PostgreSQL函數中引發通知

UPDATE foo SET bar = some_value; 
UPDATE boo SET far = another_value; 

我希望能夠看到有多少條記錄在每個表進行更新。我知道我可以通過Raise通知顯示信息,但不知道如何獲取每條語句更新的記錄數。

我使用PostgreSQL 9.1

+0

好奇心,我的回答不是你想要的? – doctore

+0

我只是沒有時間去測試它。在將一個標記爲正確之前,我喜歡完整的測試答案。你沒有投票給我,因爲我沒有給你你的觀點,但呢?真的嗎? –

+0

我把評論,你連接,並不屈尊回答。當你進入倉促時,你得到了一票否決權。我希望答案能夠爲你服務,我不需要你給我點,爲別人解答它。 – doctore

回答

1

您需要使用:

GET DIAGNOSTICS

例如(在你的函數):

... 
sql := 'UPDATE foo SET bar = some_value'; 
EXECUTE sql; 
GET DIAGNOSTICS rowsAffected = ROW_COUNT; 
... 

我希望這有助於。

+0

該解決方案有效。但是,應該注意的是變量「rowsAffected」必須包含在聲明部分中。我宣佈它是一個INT,它爲我的目的罰款。 –