Postgres不同数据库间访问

Postgres中不同数据库间无法直接访问,比如有数据库test1和test2,每个数据库中都有一个表为tablea;我使用的操作系统为win8.1,postgres版本为9.3.6;使用pgAdminIII工具访问postgres;

分别在两个数据库(test1,test2)中创建tablea;

test1数据库创建tablea并插入数据:

create table tablea(id int,name varchar(10));

insert into tablea values

(1,’a’),(2,’b’);

test2数据库创建tablea并插入数据:

create table tablea(id int,name varchar(10));

insert into tablea values

(1,’c’),(2,’d’);

从test1数据库中分别访问test1和test2数据库中的表

所报的错误为:未实现数据库关联:”test2.public.tablea”  SQL 状态:0A000

我上面写表是按照:数据库.模式.表名

SQL Server中模式是dbo,访问的时候使用select * from test2.dbo.tablea;个人感觉pgAdminIII和SSMS类似,或者说各个数据库窗口管理工具都类似,Mysql Workbench也类似。

现在先截个图,看看test1数据可test2数据库模式下面的函数个数(全部是0)

在test1数据库中打开SQL窗口,输入create extension dblink;如下图

再在test数据库上刷新下,就会看到模式—public--函数,括号内数字不是0了

然后在SQL窗口中建立连接和查询

select dblink_connect(‘t_connect’,’dbname=test2 host=localhost port=5432 user=postgres password=postgres’);

select * from dblink(‘t_connect’,’select * from tablea’)  as t2(id int,name varchar(10));

上面的select语句其实是利用了dblink(text,text)和dblink_connect(text,text)函数

两个数据库中表的连接其实也类似;还是在test1数据库的SQL窗口查询

select a.*,b.name from tablea a inner join

(select * from dblink(‘t_connect‘,‘select * from tablea‘) as t2(id int,name varchar(10))) b

on a.id=b.id

就是把这个查询select * from dblink(‘t_connect‘,‘select * from tablea‘) as t2(id int,name varchar(10))当成一个表就可以了。

很类似SQL Server中链接服务器,查询链接服务器的sql,之前随笔中应该写过SQL Server链接的MySQL,通过SSMS查询MySQL中的数据。

Postgres以前我也没接触过,不过工作中需要使用Postgres,有应用的需求,总要解决!

时间: 2024-10-19 21:29:12

Postgres不同数据库间访问的相关文章

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

服务器间访问不用密码的设置

经常在服务器程序(脚本)里面,或在命令行中,执行ssh,scp命令,会碰到要求密码的情况,很不方便! 如果在两台相互信任,其实步骤挺简单,假设要从主机1上执行,ssh,scp操作. 主机1:host1    用户1:user1 主机2:host2    用户2:user2 一:在主机1上执行下列操作: 1./home/user1/.ssh/ 目录下,执行:ssh-keygen –t id_rsa $ ssh-keygen -t rsa Generating public/private rsa

数据库无法访问,用户 NT AUTHORITY/SYSTEM或NT AUTHORITY\NETWORK SERVICE登录失败的解决办法

问题:win7中的在IIS 7.0中,在 Default Web Site 目录下挂一虚拟目录. 在相应的应用程序池 DefaultAppPool 设置标识设置成NetworkService. 但是打开页面后,无法打开登录所请求的数据库,用户登录NT AUTHORITY\NETWORK SERVICE失败. 解决办法: 1.打开sqlserver Management studio,在安全性-登录名 下新建一个登记名NETWORK SERVICE ,设置默认数据库为要访问的数据库. 2.然后选

2014-07-30 MVC框架中对SQL Server数据库的访问

今天是在吾索实习的第16天.我自己主要学习了基于MVC框架的系统的开发时,对SQL Server数据库的相关访问.其步骤如下: 第一步,在Models文件夹中创建一个类,并命名为Movies.cs,如图1所示: 图1 第二步,在上述Movies.cs文件中的namespace MvcTest.Models{}中输入如下代码: 1 public class Movie 2 { 3 public int ID { get; set; } 4 public string Title { get; se

C#:数据库通用访问类 SqlHelper

using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using System.Globalization; using System.IO; using System.Text.RegularExpressions; using System.Xml; using System.Reflection;

用反射+配置文件实现数据库的访问

刚开始对配置文件的认识比较模式,按照书上讲的,往程序中添加一个App.config文件,然后添加System.configuration引用就可以了.但是真正去做的时候也遇到不少问题,小小的总结一下. 首先,为什么要使用配置文件呢? 我们在连接数据库的时候,需要有一个对象来保存连接字符串,通常情况下这个字符串是写在程序代码中的,这样如果我们更换数据库访问时,我们还是要重新修改程序,这样是很不灵活的:其次,出于安全考虑,我们都知道SQL注入,攻击者通过输入特定字符修改SQL语句,从而获得一些比较私

数据库防火墙——实现数据库的访问行为控制、危险操作阻断、可疑行为审计

转自百度百科 数据库防火墙系统,串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题,是一款基于数据库协议分析与控制技术的数据库安全防护系统.DBFirewall基于主动防御机制,实现数据库的访问行为控制.危险操作阻断.可疑行为审计. 数据库安全技术之一,数据库安全技术主要包括:数据库漏扫.数据库加密.数据库防火墙.数据脱敏.数据库安全审计系统. 数据库安全风险包括:刷库.拖库.撞库. 数据库安全攻击手段包括:SQL注入攻击. 简介 数据库防火墙技术是针对关系型数据库保护需求应运而生

SQL数据库--数据访问

数据访问: 对应命名空间:System.Data.SqlClient; SqlConnection:连接对象 SqlCommand:命令对象 SqlDataReader:读取器对象 //造连接字符串 string connstring = "server=.;database=mydb;user=sa;pwd=123"; //造连接对象 SqlConnection conn = new SqlConnection(connstring); //创建命令对象 SqlCommand cmd

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误。    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected est

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too man