使用 postgres 函数创建视图
问题我正在尝试使用 postgres 函数构建参数化视图:
CREATE FUNCTION schemaB.testFunc(p INT)
RETURNS TABLE
AS
RETURN (SELECT * FROM schemaZ.mainTable WHERE id=p)
问题总是一样的:
你知道我做错了什么吗?
回答
您需要指定“返回表”的列,这可以使用
返回表(col_1 整数,col_2 文本,...)
在您的示例中,仅返回一个表中的行,因此更易于使用
返回主表集
如手册所述,函数体需要用单引号括起来,或者使用美元引号。
由于存储函数可以用多种不同的语言在 Postgres 中编写,因此您还需要指定一种语言——在这种情况下,语言 sql 是合适的。
因此,要将所有这些放在一起,您需要:
CREATE FUNCTION schemaB.testFunc(p_id INT)
RETURNS setofschemaZ.mainTable
AS
$$
SELECT *
FROM schemaZ.mainTable
WHERE id = p_id
$$
language sql;
语言 sql 函数不需要 return 语句。
页:
[1]