2017-05-24 71 views
0

我試圖運行根據the documentation 此命令的功能,但它始終返回1,即不,我想如何創建與Postgres的

CREATE FUNCTION getQuantity() RETURNS integer $$ 
    select count(*) from table; 
$$ LANGUAGE SQL; 

select getQuantity(); 

行數有誰知道,如果我做錯了什麼?

+0

你不返回任何東西。你的'RETURN'語句在哪兒? –

+0

@WEI_DBA你的意思是將返回select count(*)...或將select語句保存在一個變量中並返回它? –

回答

1

您錯過了關鍵字as。此外,count(*)返回bigint,所以:

create function get_quantity() 
returns bigint as $$ 
    select count(*) from my_table; 
$$ language sql; 

create function get_quantity() 
returns integer as $$ 
    select count(*)::int from my_table; 
$$ language sql; 

Test it in dbfiddle.

+0

仍然返回一個,我嘗試兩個 –

+0

兩個函數按預期工作,請參閱修改答案中的鏈接。也許你應該放棄舊版本的函數:'drop function get_quatnity()'。 – klin

+0

是的,我放棄它後工作。這就像瀏覽器中的緩存 –