PostgreSQL创建服务器与动态(非常数)选项?

i86rm4rw  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(103)

使用PostgreSQL 12(或更大)。
在创建FDW服务器时,是否有方法使用SQL、函数或属性等来填充OPTIONS

我想做一些类似的事情:

CREATE SERVER my_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(
  dbname 'the_database',
  user CURRENT_USER,
  host current_setting('remote.host'), 
  port inet_server_port()::TEXT);

有没有办法做到这一点或配置服务器/用户Map的另一种方式,而不使用固定常数?

sqxo8psd

sqxo8psd1#

您可以尝试如下动态SQL:

--SELECT set_config('remote.host','pg.farfaraway.com',true);

DO LANGUAGE PLPGSQL
$_$
BEGIN

EXECUTE FORMAT('
CREATE SERVER my_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(
  dbname %L,
  user %L,
  host %L, 
  port %L);
','the_database',CURRENT_USER,current_setting('remote.host'),inet_server_port()::TEXT) ;

END
$_$;

相关问题