找回密码
 立即注册
函数需要使用返回 | 软件设计/软件工程 2022-05-06 233 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
我正在尝试使用 postgres 函数构建参数化视图:
  1. CREATE FUNCTION schemaB.testFunc(p INT)
  2. RETURNS TABLE
  3. AS
  4. RETURN (SELECT * FROM schemaZ.mainTable WHERE id=p)
复制代码

问题总是一样的:

你知道我做错了什么吗?

回答
您需要指定“返回表”的列,这可以使用

返回表(col_1 整数,col_2 文本,...)

在您的示例中,仅返回一个表中的行,因此更易于使用

返回主表集

如手册所述,函数体需要用单引号括起来,或者使用美元引号。

由于存储函数可以用多种不同的语言在 Postgres 中编写,因此您还需要指定一种语言——在这种情况下,语言 sql 是合适的。

因此,要将所有这些放在一起,您需要:
  1. CREATE FUNCTION schemaB.testFunc(p_id INT)
  2.   RETURNS setof  schemaZ.mainTable
  3. AS
  4. $$
  5. SELECT *
  6. FROM schemaZ.mainTable
  7. WHERE id = p_id
  8. $$
  9. language sql;
复制代码

语言 sql 函数不需要 return 语句。





上一篇:Git bash 和 Git GUI 不适用于 Windows 10
下一篇:MySQL C++ 连接器内存泄漏