此篇介绍下psql下dblink的使用方式,帮助自己记录以备后需。dblink是psql下的扩展功能,可以实现在一个数据库中远程操作另外一个数据库,是实现跨库的一种方法。下面步入正文。

  • 安装dblink  
      安装方式自行百度(psql数据库默认是安装了的,可先在服务器上查看),安装完后$PGHOME下的lib下就有个dblink.so文件
      
  • 先安装扩展  
    create extension dblink;

    安装完后函数里有了扩展函数。

     --查看pgsql数据库已安装的扩展
    select * from pg_extension;
  • 使用方式

     --常规使用
    select * from dblink('hostaddr=192.168.0.105 port=5432 dbname=yjtBackstagePermissions user=postgres password=123456','select "NikeName" from "People"') AS testTable ("NikeName" VARCHAR);
    --如果不只是查询数据,而是需要修改数据库数据的情况下怎么弄呢?
    1. 先执行dblink_connect保持连接
    SELECT dblink_connect('mycoon','hostaddr=192.168.0.105 port=5432 dbname=yjtBackstagePermissions user=postgres password=123456');
    2. 执行BEGIN命令
    SELECT dblink_exec('mycoon', 'BEGIN');
    3. 执行数据操作(update,insert,create等命令)
    SELECT dblink_exec('mycoon', 'insert into tb1 select generate_series(10,20),''hello''');
    SELECT dblink_exec('mycoon', 'insert into people(username,nikename) values ("张三","小三") ');
    4. 执行事务提交
    SELECT dblink_exec('mycoon', 'COMMIT');
    5. 解除连接
    SELECT dblink_disconnect('mycoon');
  • dblink配合视图view使用,毕竟每次写dblink有点多余
     CREATE VIEW people_nikename_view AS
    select * from dblink('hostaddr=192.168.0.105 port=5432 dbname=yjtBackstagePermissions user=postgres password=123456','select "NikeName" from "People"') AS testTable ("NikeName" VARCHAR);

    这样以后就可以查视图view了

     select * from people_nikename_view 

    建议:psql下表名 字段名这些尽量用小写

  • 优势
    这样解决了psql数据库跨库问题,用DBLINK方便快捷简单,事务性处理 一次可以对其他数据库进行多种操作。当然你也可以在程序里面对2个数据库单独取值再进行处理,这样开发效率和并发下性能以及查询效率都不理想的,能简则简吧。
     

PostgreSql 使用dblink跨库的更多相关文章

  1. oracle使用dblink跨库查询的例子

    本文介绍了oracle数据库使用dblink进行跨库查询的方法,oracle dblink跨库查询教程,需要的朋友参考下.   oracle dblink跨库查询 方法一:首先,创建数据库链接: 复制 ...

  2. Postgresql ODBC驱动,用sqlserver添加dblink跨库访问postgresql数据库

    在同样是SQLserver数据库跨库访问时,只需要以下方法 declare @rowcount int set @rowcount =(select COUNT(*) from sys.servers ...

  3. PostgreSQL的 fdw 跨库使用

    create extension postgres_fdw; ',dbname 'postgres'); create user mapping for android_market server s ...

  4. postgresql 模式与用户,及跨库访问

    1 控制台命令\h:查看SQL命令的解释,比如\h select.\?:查看psql命令列表.\l:列出所有数据库.\c [database_name]:连接其他数据库.\d:列出当前数据库的所有表格 ...

  5. 如何玩转跨库Join?跨数据库实例查询应用实践

    背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.原本在同一数据库实例里就能实现的SQL查询,现在需要跨多 ...

  6. Oracle 跨库 查询 复制表数据 分布式查询

    方法一: 在眼下绝大部分数据库有分布式查询的须要.以下简单的介绍怎样在oracle中配置实现跨库訪问. 比方如今有2个数据库服务器,安装了2个数据库.数据库server A和B.如今来实如今A库中訪问 ...

  7. FreeSql 如何实现 Sqlite 跨库查询

    FreeSql 是 .NetFramework 4.6+..NetCore 下的 ORM 功能库,提供了丰富的功能,支持五种流行数据库 MySql/SqlServer/PostgreSQL/Oracl ...

  8. oracle跨库连接查询

    一.授权(本地客户器端授权当前用户) grant create database link to szfile 第一种连接方法:配置本地数据库服务器的tnsnames.ora文件 SZFILE = ( ...

  9. mysql跨库联表查询

    首先要了解database与instance区别,见<MySQL中的实例.数据库关系简介> 跨库分为同一个instance下的跨库和不同instance下的跨库. 一.同一个MySQL实例 ...

随机推荐

  1. CXF整合spring

    近公司需要弄webservics,还说不用框架整合(提倡使用hessian,他们既然说与操作系统有兼容问题,由于人员单薄,不得不屈服,哎),我想了老半天没弄明白他说的不用框架整合spring,尝试过直 ...

  2. Java NIO Scatter / Gather

    原文链接:http://tutorials.jenkov.com/java-nio/scatter-gather.html Java NIO发布时内置了对scatter / gather的支持.sca ...

  3. IO流系列一:输入输出流的转换

    输入流转字节数组的原理1.读取输入流,每一小段 读一次,取出 byteArray .2.将该一小段byteArray写入到字节输出流ByteOutStream.直到不能从输入流再读出字节为止.3.将字 ...

  4. async 和 await 之异步编程的学习

    async修改一个方法,表示其为异步方法.而await表示等待一个异步任务的执行.js方面,在es7中开始得以支持:而.net在c#5.0开始支持.本文章将分别简单介绍他们在js和.net中的基本用法 ...

  5. jQuery学习之旅 Item7 区别this和$(this)

    刚开始以为this和$(this)就是一模子刻出来.但是我在阅读时,和coding时发现,总不是一回事,这里就谈谈this与$(this)的区别. 1.jQuery中this与$(this)的区别 $ ...

  6. python如何优雅的打飞机

    这是一个打飞机的游戏,结构如下:     其中images中包含的素材为   命名为alien.png   命名为ship.png 游戏效果运行是这样的:     敌军,也就是体型稍微大点的,在上方左 ...

  7. kafka 三个配置文件

    kafka的配置分为 broker.producter.consumer三个不同的配置 一 BROKER 的全局配置   最为核心的三个配置 broker.id.log.dir.zookeeper.c ...

  8. (一)Servlet简介

    相关名词解释 HTML:Hyper Text Markup Language,超文本标记语言 HTTP:Hyper Text Transfer Protocol,超文本传输协议 URL:Uniform ...

  9. Nodejs.Electron(Nodejs的图形界面开发)安装和试用

    # 克隆示例项目的仓库 git clone https://github.com/electron/electron-quick-start # 进入这个仓库 cd electron-quick-st ...

  10. 转[@SuppressWarnings详解]

    背景知识:       从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范.注释是以“@注释名”在代码中存在的,还可以添加一些参数 值,例如:@SuppressWa ...