文档中心MogDBMogDB StackUqbar
v3.1

文档:v3.1

支持的版本:

其他版本:

dblink

dblink用于在远程数据库中执行查询,通常是一个SELECT,但是也可以是任意返回行的SQL语句。

当给出两个text参数时,首先将第一个作为持久连接的名称进行查找;如果找到,则在该连接上执行命令。如果未找到,则将第一个参数视为与dblink_connect一样的连接信息字符串,并且仅在此命令期间进行指示的连接。


  1. 访问MogDB下载页面,下载所需版本的dblink插件。

  2. 解压插件包,例如:

    tar -xzvf dblink-1.0-3.1.0-01-CentOS-x86_64.tar.gz
  3. 进入插件所在目录下,执行make install命令。

    cd dblink/
    make install
  4. 连接到数据库,执行create extension dblink;插件即可使用。

    MogDB=# create extension dblink;
    CREATE EXTENSION

  • sql端创建拓展

    create extension dblink;
  • 检查dblink是否创建成功

    \dx
  • 连接远端数据库执行查询操作

    select * from dblink('dbname=postgres host=127.0.0.1 port=12345 user=test password=Test123456'::text, 'select * from dblink_test'::text)t(id int, name varchar);
  • 创建连接

    select dblink_connect('dblink_conn','hostaddr=127.0.0.1 port=12345 dbname=postgres user=test password=Test123456');
  • 数据库表操作

    (视图不支持查询操作)

    select dblink_exec('dblink_conn', 'create table ss(id int, name int)');
    select dblink_exec('dblink_conn', 'insert into ss values(2,1)');
    select dblink_exec('dblink_conn', 'update ss set name=2 where id=1');
    select dblink_exec('dblink_conn', 'delete from ss where id=1');
  • 解除连接

    select dblink_disconnect('dblink_conn')

常用的dblink函数

  • 加载dblink扩展

    CREATE EXTENSION dblink;
  • 打开一个到远程数据库的持久连接

    SELECT dblink_connect(text connstr);
  • 关闭一个到远程数据库的持久连接

    SELECT dblink_disconnect();
  • 在远程数据库执行查询

    SELECT * FROM dblink(text connstr, text sql);
  • 在远程数据库执行命令

    SELECT dblink_exec(text connstr, text sql);
  • 返回所有打开的命名dblink连接的名称

    SELECT dblink_get_connections();
  • 发送一个异步查询到远程数据库

    SELECT dblink_send_query(text connname, text sql);
  • 检查连接是否正在忙于一个异步查询

    SELECT dblink_is_busy(text connname);
  • 删除扩展

    DROP EXTENSION dblink;

注意事项

目前dblink仅支持MogDB数据库访问另一个MogDB数据库,不支持MogDB数据库访问PostgreSQL数据库。

Copyright © 2011-2024 www.enmotech.com All rights reserved.