广告
返回顶部
首页 > 资讯 > 数据库 >PG-跨库操作
  • 518
分享到

PG-跨库操作

PG-跨库操作 2021-12-17 13:12:24 518人浏览 才女
摘要

在postgresql数据库之间进行跨库操作的方式 dblink postgres_fdw 本文先说说dblink;dblink是一个支持从数据库会话中连接到其他Postgresql数据库的插件。在其他数据库跨库操作也是采用d

PG-跨库操作

postgresql数据库之间进行跨库操作的方式

  • dblink
  • postgres_fdw

本文先说说dblink;dblink是一个支持从数据库会话中连接到其他Postgresql数据库的插件。在其他数据库跨库操作也是采用dblink的方式

PostgreSQL插件dblink是PostgreSQL安装包自带的;若安装数据库没有安装dblink插件;可以自行去编译安装。用使用dblink;先要按照dblink扩展;安装完成之后;我们调用dblink函数来实现跨库操作。我们常用的操作是跨库查询。

lottu01=# create extension dblink;
CREATE EXTENSION

调用dblink_connect函数;创建dblink连接(连接名为lottu);这样我们可以在这个会话中访问lottu数据库中下面的对象。

lottu01=> select dblink_connect("lottu", "host=192.168.1.221 port=6000 user=lottu passWord=li0924 dbname=lottu");
 dblink_connect 
----------------
 OK
(1 row)

使用dblink;我们更多是跨库查询操作;由于上面创建dblink_connect连接;所以我们可以拿来使用。

lottu01=> SELECT * FROM dblink("lottu", "select id, info from public.t1") as lottu_t1(id int, info text);
  id  | info  
------+-------
 1001 | lottu
(1 row)

我们也可以直接使用;无效先创建dblink_connect。这是常用的方式。

lottu01=> SELECT * FROM dblink("host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu", "select id, info from public.t1") as lottu_t1(id int, info text);
  id  | info  
------+-------
 1001 | lottu
(1 row)

若我们跨库操作create、insert、update、delete语句;其实这种行为一般不跨库操作。慎用!下面演示下insert操作

lottu01=> SELECT dblink_exec("lottu", "insert into public.t1 values (1002,""hello"")");
 dblink_exec 
-------------
 INSERT 0 1
(1 row)
# OR
lottu01=> SELECT dblink("lottu", fORMat("insert into public.t1 select %L, %L", 1003, "lottu"));
     dblink     
----------------
 ("INSERT 0 1")
(1 row)

2.4、关闭dblink连接

在PostgreSQL中dblink是会话级别;会话断开即dblink也关闭。当然也可以在会话中手动关闭

lottu01=> SELECT dblink_disconnect("lottu");
 dblink_disconnect 
-------------------
 OK
(1 row)

三、扩展

使用dblink查询;都要带有conn_str;非常不简洁;在会话使用临时表/视图来保存。两种效果不同

到底选择视图/临时表;看你需求;在PostgreSQL中临时表在会话结束后是不会保持的。这样的好处;不使用的话无需去删除对应的临时表

lottu01=> create temp table lottu_t1 as SELECT * FROM dblink("host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu", "select id, info from public.t1") as lottu_t1(id int, info text);
SELECT 2
lottu01=> select * from lottu_t1;
  id  | info  
------+-------
 1001 | lottu
 1002 | hello
(2 rows)

四、应用场景

PostgreSQL使用dblink;存在优势是;即取即用;无须在创建其他对象;下一章节会讲解PostgreSQL_fdw;相比PostgreSQL_fdw优势在此;不足之处;后续补充讲解。

4.1、同步远端库表

开发工作中;测试数据库需要同步某个(新建/旧的)表的数据;使用dblink非常便捷。

lottu01=> create table public.t1(id int, info text);
CREATE TABLE
lottu01=> insert into public.t1 SELECT * FROM dblink("host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu", "select id, info from public.t1") as lottu_t1(id int, info text);
INSERT 0 5
lottu01=> select * from public.t1;
  id  | info  
------+-------
 1001 | lottu
 1002 | hello
 1003 | rax
 1004 | rax
 1005 | lottu
(5 rows)

更多详情请参见dblink。

您可能感兴趣的文档:

--结束END--

本文标题: PG-跨库操作

本文链接: https://www.lsjlt.com/news/7239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PG-跨库操作
    在PostgreSQL数据库之间进行跨库操作的方式 dblink postgres_fdw 本文先说说dblink;dblink是一个支持从数据库会话中连接到其他PostgreSQL数据库的插件。在其他数据库跨库操作也是采用d...
    99+
    2021-12-17
    PG-跨库操作
  • 【PG】PG基础操作
    mark笔记 1 登录 [postgres@hostnfsd ~]$ psql     --默认登录用户是当前系统用户,并默认登录和当前系...
    99+
    2022-10-18
  • PG数据库常用操作
    全量迁移 备份数据 $ pg_dump -h 172.19.235.145 -U -d > 20180704_dbpe.sql 正式迁移 首先要修改备份文件*.sql的owner,防止权限出现错误。 $ psql -h...
    99+
    2015-09-21
    PG数据库常用操作
  • mysql跨库事务XA操作示例
    本文实例讲述了mysql跨库事务XA操作。分享给大家供大家参考,具体如下: 前一段时间在工作中遇到了跨库事务问题,后来在网上查询了一下,现在做一下整理和总结。 1、首先要确保mysql开启XA事务支持 ...
    99+
    2022-10-18
  • SQL Server如何跨服务器操作数据库
    本文小编为大家详细介绍“SQL Server如何跨服务器操作数据库”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL Server如何跨服务器操作数据库”文章能帮助大家解决疑惑,下面...
    99+
    2022-11-30
    sql server 数据库 服务器
  • SQLServer跨服务器操作数据库的图文方法(LinkedServer)
    基础知识介绍 以SQL Server的数据库管理工具SSMS(SQL Server Management Studio)为平台进行操作。 SQL Server Management ...
    99+
    2022-11-13
    SQL Server跨服务器 操作数据库
  • SpringCloud gateway跨域配置的操作
    gateway跨域配置 gateway允许跨域的配置和zuul的不一样,记录一下。 版本 <parent> <groupId>org.s...
    99+
    2022-11-12
  • SQL Server跨服务器操作数据库的图文方法(LinkedServer)
    基础知识介绍 以SQL Server的数据库管理工具SSMS(SQL Server Management Studio)为平台进行操作。 SQL Server Management Studio (SSMS) 是用于管理...
    99+
    2022-10-30
  • Unity 静态变量跨场景操作
    创建两个场景同时赋值StaticVarious 脚本 然后按键好,H ,J 进行不断切换场景,会发现unity 控制台输出数字不断增加,然后把静态去掉,这样结果都是10。 usi...
    99+
    2022-11-12
  • SpringCloud gateway跨域配置的操作方式
    这篇文章主要介绍“SpringCloud gateway跨域配置的操作方式”,在日常操作中,相信很多人在SpringCloud gateway跨域配置的操作方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-20
  • C# winform跨线程操作控件的实现
    前提:当我们使用Winform开发的时候,经常会遇到:System.InvalidOperationException:“线程间操作无效: 从不是创建控件“x...
    99+
    2022-11-13
  • 【MySQL】数据库——库操作
    文章目录 1. 创建数据库[IF NOT EXISTS] 的使用 2. 删除库3. 数据库的编码问题查看系统默认支持的字符集查看系统默认支持的校验集只查看 database的校验集指定编码...
    99+
    2023-10-20
    数据库 mysql
  • MongoDB(三):数据库操作、集合操作
    1. 数据库操作 看完前面的文章,大家应该把环境搭建好了,下面我们就开始学习MongoDB的一些基本操作了。 首先我们要了解的一些要点: MongoDB将数据存储为一个文档,数据结构由键值对(key=>value)组成 MongoDB文档...
    99+
    2017-03-01
    MongoDB(三):数据库操作 集合操作
  • php操作mysql(数据库常规操作)
    php操作数据库八步走 ...
    99+
    2016-04-04
    php操作mysql(数据库常规操作)
  • 如何理解Java的跨平台特性操作
    Java的跨平台特性 1、java的跨平台是指 java在运行时是凌驾于os之上,是在jvm中运行的,跟os没有直接联系。 2、java跨平台主要是由java的编译方式决定的 因为j...
    99+
    2022-11-12
  • C# winform跨线程操作控件怎么实现
    今天小编给大家分享一下C# winform跨线程操作控件怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前提...
    99+
    2023-07-02
  • Hyperf操作数据库
    Hyperf操作数据库 对于一个 MVC 框架来说,连接操作各种数据库是最基本的功能。而对于 Swoole ,其实我们前面并没有讲很多关于数据库方面的东西,毕竟这不是我们这个系列的主要内容。但之前我们也讲过 连接池 相关的内容,如果小伙伴们...
    99+
    2023-09-15
    php 数据库 mysql
  • 操作MySQL数据库
    SQL是什么    SQL是结构化查询语言,这是一种计算机语言,用于存储,操纵和检索存储在关系数据库中的数据。    SQL是关系数据库系统的标准语言。所有关系型数据...
    99+
    2022-10-18
  • MySql数据库操作
    MySql数据库操作 –登录MySql:——–Windows环境进入cmd后输入mysql –h localhost –u root –p,再输入密码就可以启动mysql;其中localhost是...
    99+
    2022-10-18
  • laravel数据库操作
    了解 Laravel 某个模块的内部实现,最好的切入点就是从 composer.json 开始,从里面我们主要可以得到以下信息:require 字段可以知道相关的依赖包extra.laravel.providers 可以知道它的服务提供者的...
    99+
    2016-06-17
    laravel数据库操作 数据库入门 数据库基础教程 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作