数据库

 首页 > 数据库 > postgresql > 访问远程PostgresQL数据库的操作方法

访问远程PostgresQL数据库的操作方法

分享到:
【字体:
导读:
         摘要:有时候的业务需要参照其他数据库的数据。我们可以在程序中分别从两个数据库中取值然后处理。但这样开发效率和性能都不是很好。如果两个数据库都是PostgreSQL的话,用扩展的DBLINK功能非常简单。比如一个数据db1,db2。首先需要把db1加入dblink扩展。示例...

访问远程PostgresQL数据库的操作方法

有时候的业务需要参照其他数据库的数据。

我们可以在程序中分别从两个数据库中取值然后处理。但这样开发效率和性能都不是很好。

如果两个数据库都是PostgreSQL的话,用扩展的DBLINK功能非常简单。

比如一个数据db1,db2。首先需要把db1加入dblink扩展。

示例1:取得db2的用户表的用户名

SELECT * FROM dblink('hostaddr=192.168.0.222 port=5432 dbname=db2 user=postgres password=postgres',
                     'SELECT user_name From people') AS t(user_name text);
如果认为每次查询都要写dblink的一堆信息很麻烦的话,可以在db1中建一个view来解决。 CREATE VIEW remote_people_user_name AS
SELECT * FROM dblink('hostaddr=192.168.0.222 port=5432 dbname=db2 user=postgres password=postgres',
                     'SELECT user_name From people') AS t(user_name text);
然后就可以从这个view中查询数据了。
SELECT * FROM remote_people_user_name;
如果不只是查询数据,而是需要修改db2的数据的情况下怎么弄呢?

1. 先执行dblink_connect保持连接

SELECT dblink_connect('connection','hostaddr=192.168.0.222 port=5432 dbname=db2 user=postgres password=postgres');
2. 执行BEGIN命令
SELECT dblink_exec(' "highlightedSearchTerm">connection', 'BEGIN');

3. 执行数据操作(update,insert,create等命令)

SELECT dblink_exec(' "highlightedSearchTerm">connection', 'insert 。。。数据操作');

4. 执行事务提交

SELECT dblink_exec(' "highlightedSearchTerm">connection', ' "highlightedSearchTerm">COMMIT');

5. 解除连接

SELECT dblink_dis "highlightedSearchTerm">connect(' "highlightedSearchTerm">connection');
访问远程PostgresQL数据库的操作方法
分享到:
postgreSQL 客户端认证
postgreSQL 客户端认证 在PostgreSQL数据库中,客户端想建立一个数据库连接,除了要提供正确的数据库用户名和密码,还要通过数据库的认证。如果不能通过数据库的认证,客户端的连接请求将被拒绝。客户端认证是PostgreSQL独有的特性,其它的数据库如Oracle没有这个概念。认证基于客户端所在的主机的IP地址、数据...
使用PG_ctl管理Postgresql数据库
使用PG_ctl管理Postgresql数据库 pg_ctl 名称:一个初始化,启动,停止,或控制PostgreSQL服务器的设备(命令). 用法:     pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"]     pg_ctl start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]          pg_ctl stop [...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……