postgresql - 如何在postgresql中创建函数选择所有列
问题描述
如何在 PgAdmin 中创建一个选择表中所有列的函数(存储过程/存储函数)?同样像这样。
CREATE OR REPLACE FUNCTION GetAllUsers(IN userno integer)
RETURNS TABLE(all column) AS
$BODY$
BEGIN
RETURN QUERY
SELECT *
FROM Users W
WHERE w.UserNo = GetAllUsers.userno;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION GetAllUsers(integer)
OWNER TO postgres;
解决方案
您可以使用returns setof users
而不是returns table (...)
你也不需要昂贵的 PL/pgSQL 函数。一个普通的 SQL 函数就足够了:
CREATE OR REPLACE FUNCTION getallusers(p_userno integer)
RETURNS setof users
$BODY$
SELECT *
FROM users
WHERE userno = p_userno;
$BODY$
LANGUAGE sql VOLATILE
COST 100
ROWS 1000;
推荐阅读
- node.js - Node/express 异步函数 res.send 出现在控制台而不是页面中
- php - 检查 Woocommerce 订单账单电子邮件的访客客户的首次订单折扣
- windows - `Get-Command` 如何返回不是真正命令的“命令”?
- android - 在 Flutter 中打开此屏幕时如何使用此库显示 PDF
- amazon-web-services - 从不同的 aws 帐户访问 s3 存储桶
- c# - 是否可以在 TFS 上安排和记录自动化测试结果,而不将它们作为构建/发布的一部分?
- r - 由于缺少 GSL,R 包构建在 Windows 机器(AppVeyor)上失败 - GNU 科学图书馆
- python - 如何通过公共键列(固定长度限制)连接单个熊猫数据框中的多行?
- java - 为用户登录用户弹出 AzureAD 浏览器并输出令牌的 Java 库是什么?
- reactjs - 使用 React Router 创建进度条