sql - 如何创建从 postgreSQL 中的表返回一组行的过程

标签 sql postgresql stored-procedures

如何创建从表中返回一组行的过程? 或者甚至可以使用 procedure 返回表格结果集。 我尝试添加返回学生集,就像在函数和table(id int)中所做的那样,但它不起作用。

示例代码:

CREATE OR REPLACE PROCEDURE getStudents()
LANGUAGE plpgsql
AS $$
BEGIN
 SELECT * FROM STUDENTS
COMMIT;
RETURN;
END;
$$;

我可以调用它,但它说查询没有结果数据的目的地

最佳答案

过程并不意味着返回数据,这才是函数的用途。

您可以使用简单的 SQL 函数来实现此目的,无需 PL/pgSQL:

CREATE OR REPLACE funct get_students()
   returns setof student
   LANGUAGE sqö
AS $$
  select *
  from students;
$$;

然后像表格一样使用它:

select *
from get_students();

也不需要提交。

关于sql - 如何创建从 postgreSQL 中的表返回一组行的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59486334/

相关文章:

sql - 计算出重叠 er 数据库中的总人数

postgresql - 是否可以直接访问 PostgreSQL?

nHibernate - 存储过程和复合键

sql - 在delphi中存储过程

mysql - 我们可以在游标 SQL 函数中使用声明数据类型为 TIMESTAMP 的局部变量吗?

php - 如果一列有多个关键字,我如何从数据库中获取结果?

mysql - 使用 SQL 从现有数据生成测试表

mysql - 比较 MySQL 中的表数据

mysql - SQL 简单连接条件

angularjs - 不区分大小写的环回过滤器