PostgreSQL通过DBLINK执行存储过程创建表

  1. 在A服务器创建存储存储过程
    CREATE OR REPLACE FUNCTION "public"."crt_tab"()

RETURNS "pg_catalog"."int4" AS $BODY$
declare
str_sql varchar(100);
ret int;
begin
create table tab_test(id int);
--execute immediate "create table tab_test(int id);";
--execute immediate str_sql;
return 1;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100

  1. 在B服务器创建扩展db_link
    create extension dblink;
  2. 在B服务器创建连接,其中host地址为A服务器地址
  3. dblink_connect('test_dblink','host=10.110.38.201 dbname=admin user=postgres password=postgres');
  4. 执行A服务器存储过程,创建表(as t(ret int)为函数返回值类型,此处为int)
    • from dblink('test_dblink','select crt_tab()') as t(ret int);
  5. 关闭连接
    select dblink_disconnect('test_dblink');
上一篇:如何使用Terraform管理容器服务Kubernetes集群之--托管版集群


下一篇:putty实现自动化登陆linux服务器