没有从 postgresql 函数返回任何东西?
Posted
技术标签:
【中文标题】没有从 postgresql 函数返回任何东西?【英文标题】:not returning anything from postgresql function? 【发布时间】:2010-05-01 03:08:50 【问题描述】:PostgreSQL plpgsql 函数是否有可能不返回任何内容?我创建了一个函数,根本不需要它返回任何内容,因为它执行复杂的 SQL 查询,并将该查询的结果插入另一个表(SELECT INTO ....)。因此,我不需要或没有兴趣让函数返回任何输出或值。不幸的是,当我尝试省略函数声明的 RETURN 子句时,我无法创建函数。 PostgreSQL plpgsql 函数是否有可能不返回任何内容?
【问题讨论】:
【参考方案1】:是 - "If the function is not supposed to return a value, specify void as the return type." 和 - "If you declared the function to return void, a RETURN statement can be used to exit the function early; but do not write an expression following RETURN."。
【讨论】:
【参考方案2】:这并不能直接回答您的问题,但我发现有趣的是,如果您有一个或多个 OUT
输出参数,则不需要 RETURN
子句。这显然是在返回一些东西,但允许你像你说的那样“省略返回”。
【讨论】:
【参考方案3】:不,它至少必须返回null
。来自PostgreSQLdocumentation:
触发器函数必须返回 NULL 或记录/行值具有 正是表的结构 触发了触发器。
【讨论】:
返回 VOID 是完全可以接受的,在这种情况下您不必让它返回任何东西。 一个 (PL/pgSQL) 函数可以返回 void,但是当该函数用作触发函数时,该函数必须返回一些东西。以上是关于没有从 postgresql 函数返回任何东西?的主要内容,如果未能解决你的问题,请参考以下文章
如何将从函数返回的布尔值分配给 PostgreSQL 9.4 中的变量?