Thread: Joining tables in two different databases?

Joining tables in two different databases?

From
"Michael Goldner"
Date:

Is it possible to access tables in two different databases, running on the
same server, from within psql?

I have a table in a database that is "linked" to a table in another database
(using XA transactions in Jboss).  I'd like to do some archiving at the
database level, which requires that for every record in db1.table1, I need
to archive the corresponding record in db2.table1.

I seem to recall using some other rdbms in the past that allowed one to
prefix the table name with the dbname.  Can this be done in postgres?

If not, it seems that I'll need to do some sort of "COPY" operation to
export the primary keys to a temporary table, import it into the second db,
and then perform my archive based on the table.  Does this seem appropriate?

Otherwise, I could write the archive procedure in Java, using the XA
datasource.  I was hoping to avoid the overhead and complexity involved
versus a succinct sql statement.

Thanks!


Re: Joining tables in two different databases?

From
"Chris Hoover"
Date:
On 8/8/07, Michael Goldner <MGoldner@agmednet.com> wrote:

Is it possible to access tables in two different databases, running on the
same server, from within psql?

Take a look at dblink in the contrib area.  I think it will give you what you are looking for.

Chris

Re: Joining tables in two different databases?

From
Julio Cesar Sánchez González
Date:
El jue, 09-08-2007 a las 15:08 -0400, Chris Hoover escribió:
> On 8/8/07, Michael Goldner <MGoldner@agmednet.com> wrote:
>         Is it possible to access tables in two different databases,
>         running on the
>         same server, from within psql?
>

yes it is, with dblink.

follow next link:

http://www.postgresql.org/docs/faqs.FAQ.html

4.17) How do I perform queries using multiple databases?
There is no way to query a database other than the current one. Because
PostgreSQL loads database-specific system catalogs, it is uncertain how
a cross-database query should even behave.

contrib/dblink allows cross-database queries using function calls. Of
course, a client can also make simultaneous connections to different
databases and merge the results on the client side.


>
>
> Take a look at dblink in the contrib area.  I think it will give you
> what you are looking for.
>
> Chris

--
Regards,

Julio Cesar Sánchez González
www.sistemasyconectividad.com.mx
blog: http://darkavngr.blogspot.com

---
Ahora me he convertido en la muerte, destructora de mundos.
Soy la Muerte que se lleva todo, la fuente de las cosas que vendran.