2015-02-12 205 views
2

如何編寫查詢結果消息,通知用戶查詢成功與否以及受影響記錄的數量,以便在PostgreSQL中記錄文件。日誌postgres查詢消息

我曾試圖改變log_statement爲「所有」和log_min_duration_statement爲0,但我得到的是查詢文本。

是否有可能將這些消息重定向到Windows操作系統中的日誌文件?

+0

我不我認爲這是可能的。 – 2015-02-12 09:51:44

+0

一定有辦法:)我希望 – Ucef 2015-02-12 11:49:50

回答

0

您可以使用GET DIAGNOSTICS爲。而如果你是一個超級用戶,你可以保存結果到一個文件...

create table tablename(version int); 
insert into tablename select 9; 
do 
$$ 
declare 
rc text; 
begin 
    update tablename set version=version where false; 
    GET DIAGNOSTICS rc = ROW_COUNT; 
    raise info '%',' changed: '||rc; 

    update tablename set version=version where true; 
    GET DIAGNOSTICS rc = ROW_COUNT; 
    raise info '%',' changed: '||rc; 

    raise info '%','If you are superuser you can save result to a file...'; 
    execute $e$copy(select '$e$||rc||$e$') to '/tmp/roes.log'$e$; 
    raise exception '%','raiseing error to rollback changes'; 
end; 
$$ 
; 

和結果看起來:

INFO: changed: 0 
INFO: changed: 1 
INFO: If you are superuser you can save result to a file... 
ERROR: raiseing error to rollback changes 

********** Error ********** 

ERROR: raiseing error to rollback changes 
SQL state: P0001