尝试使用自定义函数在 Hasura 中创建计算字段

Jos*_*ell 1 sql postgresql graphql hasura

我正在尝试将Hasura 计算字段与名为players 的表结合使用,以组合firstName 和lastName 列。下面是我复制并更改文档中显示的示例。

CREATE FUNCTION player_full_name(player_row players)
RETURNS TEXT AS $$
    SELECT player_row.firstName || ' ' || player_row.lastName
$$ LANGUAGE sql STABLE;
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

SQL Execution Failed
postgres-error : missing FROM-clause entry for table "player_row"
Run Code Online (Sandbox Code Playgroud)

Des*_*eyf 5

顺便说一句,它可能与你的问题没有直接关系,但是对于 postgres,只要你有列名,如果有任何大写,它需要你引用你的字段,所以在这种情况下你需要以下函数:

CREATE FUNCTION player_full_name(player_row players)
RETURNS TEXT AS $$
    SELECT player_row."firstName" || ' ' || player_row."lastName"
$$ LANGUAGE sql STABLE;
Run Code Online (Sandbox Code Playgroud)

请注意列名称周围的双引号,postgres 自动将所有列小写,我相信这就是 hasura 在其示例中选择蛇形大小写的原因。

我还注意到您在函数中引用了player_row players,请确保players末尾的部分与表的确切名称匹配。