2017-05-24 52 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

是的,我放弃它后工作。这就像浏览器中的缓存 –