【问题标题】:Function to return SETOF Table in Postgres [duplicate]在 Postgres 中返回 SETOF 表的函数
【发布时间】:2019-11-13 15:47:17
【问题描述】:

我正在尝试构建一个满足以下条件的简单函数(需要使用 Hasura API fwiw link

Function behaviour: ONLY STABLE or IMMUTABLE
Return type: MUST be SETOF <table-name>
Argument modes: ONLY IN

这是函数

CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
  SELECT prodID, sum(views) FROM page_analytics WHERE prodID = $1 group by prodID
$$ LANGUAGE SQL STABLE;

我得到了错误:"column \"prodid\" does not exist"。当我使用 page_analytics.prodID"page_analytics.prodID"\"page_analytics.prodID\" 时,我得到了同样的错误

【问题讨论】:

    标签: sql postgresql sql-function quoted-identifier


    【解决方案1】:

    对于任何包含大写字母的表名或列名,请始终确保使用双引号。否则,他们是converted to lowercase

    CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
      SELECT "prodID", sum(views) FROM page_analytics WHERE "prodID" = $1 group by "prodID"
    $$ LANGUAGE SQL STABLE;
    

    另请注意,引用“page_analytics”时,“prodID”也可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多