2014-03-19 17 views
6

我們可以在Postgres中使用RAISE NOTICE作爲RAISERROR'消息的等效文件在SQL Server中顯示'WITH NOWAIT',還是有更好的方式在postgres查詢運行時打印中間消息?請建議是否有更好的方法在postgres中打印運行時間消息。在postgres中打印運行時間消息

INSERT INTO tbl1 (col1) values (val1); 
DO $$ 
begin 
raise notice 'insert tbl1 done!'; 
end; 
$$; 
UPDATE tbl2 set col2='val2' where ...; 
DO $$ 
begin 
raise notice 'update tbl2 done!'; 
end; 
$$; 

我道歉,如果這個代碼是太糟糕了評論,請你提出一個更好的辦法做到這一點,謝謝

回答

10

是的,你可以使用RAISE NOTICE像下面。你正在做的方式是正確的。

RAISE NOTICE 'i want to print % and %', var1,var2; 

在這裏看到更多的信息https://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html

編輯:

begin 
INSERT INTO tbl1 (col1) values (val1); 
raise notice 'insert tbl1 done!'; 
end; 
+0

謝謝,Rahul,好吧,但我希望如果我們可以簡化RAISE NOTICE的語法就像我們如何運行INSERT和UPDATE是可能的? – RAFIQ

+1

不知道你在問什麼問題舉個例子嗎?但是,是的。通過'RAISE NOTICE',你可以給你想要打印的信息(就像你已經做的那樣);這些'%'是佔位符。 – Rahul

+0

我在問是否可以簡化句法DO $$ begin 通知'update tbl2 done!'; 結束; $$;我們可以寫入插入tbl1 RAISE NOTICE'message'update tbl2 – RAFIQ

0

RAISE NOTICE是PL/pgSQL中的一部分,所以它只是在函數或匿名DO塊是合法的。我想你可以做出一個提出通知並呼籲的函數。

+0

感謝您的評論,是的,如果我們想打印許多消息,功能可能是更好的方法,但目前我堅持做DO blcok – RAFIQ