gpt4 book ai didi

postgresql - 执行函数从本地 PostgreSQL 数据库返回远程 PostgreSQL 数据库中的数据

转载 作者:行者123 更新时间:2023-11-29 12:05:21 29 4
gpt4 key购买 nike

Postgres 版本:9.3.4

我需要执行驻留在远程数据库中的函数。该函数根据给定的参数返回一个统计数据表。

我实际上只是在我的本地数据库中镜像该函数,以使用我的数据库角色和授权来锁定对该函数的访问。

我发现以下似乎只提供基于表的访问。

第一个问题:这是正确的还是有办法将这些库用于非基于表的操作?

我发现以下内容似乎为我提供了对外部数据库的任何 SQL 操作。由于手动连接和错误处理,负面影响似乎增加了复杂性并降低了性能。

第二个问题:这些假设是否正确,是否有任何方法可以绕过这些问题或可以从中开始的库/示例?

最佳答案

fdw 接口(interface)提供了一种创建库的方法,它允许 postgresql 数据库查询任何外部数据源,就好像它是一个表一样。从这个角度来看,它可以做你想做的事。

然而,内置的 postgresql_fdw 驱动程序不允许您将函数指定为远程表。

您可以编写自己的 fdw 驱动程序,可能使用 multicorn 库或其他语言。不过,这可能需要一些工作,并且会有一些特定的缺点,特别是我不知道如何将参数传递给函数。

dblink可能是最简单的解决方案。它允许您在远程服务器上执行任意 SQL,返回一组记录。

SELECT *
FROM dblink('dbname=mydb', 'SELECT * FROM thefunction(1,2,3)')
AS t1(col1 INTEGER, col2 INTEGER);

还有其他潜在的解决方案,但它们都需要更多的努力来设置。

关于postgresql - 执行函数从本地 PostgreSQL 数据库返回远程 PostgreSQL 数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24863140/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com