2013-01-07 79 views
0

我想在pl/pgsql中生成UUID,並且我寫了這段代碼。我沒有錯誤,但是我不能在輸出中看到UUID,並且消息也不會提示。在pl/pgsql中生成UUID

CREATE OR REPLACE FUNCTION generatesurrogat() RETURNS uuid[] AS 
$BODY$DECLARE 
uid UUID; 
BEGIN 
uid:=(select uuid_generate_v1()); 
RAISE NOTICE 'My UUID is',uid; 
return uid; 
END$BODY$ 

請問您能告訴我如何解決我的問題?

+0

你爲什麼要返回一個數組?那蜜蜂是否應該返回uuid?你究竟是什麼意思,「*我看不到UUID輸出*」 –

+0

我想生成一個UUID值,然後我想看到這個值作爲輸出。我想,如果我運行這個函數,我可以在數據部分輸出中看到UUID值 – Kabi

+1

您確實已將'client_min_messages'設置爲'notice',請參閱此處:http://www.postgresql.org/docs/current/static/ runtime-config-logging.html#GUC-CLIENT-MIN-MESSAGES(又是:爲什麼你從這個函數返回一個數組,這是沒有意義的)。 –

回答

2

此功能工作就像一個魅力

CREATE OR REPLACE FUNCTION generatesurrogat() RETURNS uuid AS 
$BODY$DECLARE 
uid UUID; 
BEGIN 
uid:=(select uuid_generate_v1()); 
RAISE NOTICE 'My UUID is %',uid; 
return uid; 
END$BODY$ 
LANGUAGE plpgsql VOLATILE 
COST 100; 

你在你的RAISE NOTICE語法錯過了%。你還錯過了語言規範

我假設你正在使用PGAdmin3。如果是這樣你可以找到輸出窗格的消息選項卡消息。

希望它有幫助。

+0

您是否找到消息選項卡?如果不嘗試按Ctrl + Alt + V來獲取編輯器的默認視圖。 –