spi*_*edd 3 postgresql plpgsql
我想创建一个对表进行操作的函数,例如
create or replace function test(t table)
returns void language plpgsql as
$func$
begin
select * from t limit 10;
end;
$func$
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用任何表名调用该函数,例如
select test(myTable);
Run Code Online (Sandbox Code Playgroud)
我该怎么做这样的事情?
您不能将表声明为函数参数本身,因为 Postgres 中没有表变量。但是有多种方法可以实现您可能想要实现的目标 - 目前尚不清楚。
您可以“传递”一个表...
...表名称(类型text
或name
) - 特别是当表可能实际上不存在时(尚):
...对象标识符(类型regclass
):
anyelement
...使用多态性概念的表的行类型(type ):
通常,您最终会在函数中使用动态 SQL。警惕 SQL 注入向量。有关的:
返回类型取决于您的输入以及您想要实现的目标......
归档时间: |
|
查看次数: |
16801 次 |
最近记录: |