Обсуждение: Syntax To Create Table As One In Another Database

Поиск
Список
Период
Сортировка

Syntax To Create Table As One In Another Database

От
Rich Shepard
Дата:
   I need a pointer to the appropriate docs that show me how to specify a
table in a different database.

   What I want is to CREATE TABLE <tablename> AS TABLE
<otherdatabase><same_tablename>; but using a period (dot) to separate the
source database and table name doesn't work. My searches of the 9.0.x docs
have missed finding this information.

TIA,

Rich

Re: Syntax To Create Table As One In Another Database

От
Rich Shepard
Дата:
On Tue, 15 Nov 2011, David Johnston wrote:

> Aside from roles/users each database exists in isolation and so what you
> describe cannot be done.  The syntax you describe
> "<something>.<tablename>" is reserved for "SCHEMA" usage within
> PostgreSQL.

David,

   This was pointed out to me.

   What I did was display the schema for the table, then use it to create a
similar table in the new database.

Thanks,

Rich

Re: Syntax To Create Table As One In Another Database

От
"David Johnston"
Дата:
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Rich Shepard
Sent: Tuesday, November 15, 2011 11:42 AM
To: pgsql-general@postgresql.org
Subject: [GENERAL] Syntax To Create Table As One In Another Database

   I need a pointer to the appropriate docs that show me how to specify a
table in a different database.

   What I want is to CREATE TABLE <tablename> AS TABLE
<otherdatabase><same_tablename>; but using a period (dot) to separate the
source database and table name doesn't work. My searches of the 9.0.x docs
have missed finding this information.

TIA,

Rich

---------------------------------------------------------------------------

Aside from roles/users each database exists in isolation and so what you
describe cannot be done.  The syntax you describe "<something>.<tablename>"
is reserved for "SCHEMA" usage within PostgreSQL.

If you really need to copy/clone a table to another database you will need
to pg_dump the table and then pg_restore it into the second database.  An
alternative to is, somehow, simply dump "INSERT" statements for all the
records and then manually recreate the table in the second database and then
execute the INSERTS.  I use third-party software that can dump the INSERTs
for me so I am unsure whether psql or pgAdmin can do the same.  Replication
solutions work as well - depending on the complexity and frequency of your
need.

David J.





Re: Syntax To Create Table As One In Another Database

От
John R Pierce
Дата:
On 11/15/11 8:42 AM, Rich Shepard wrote:
>   I need a pointer to the appropriate docs that show me how to specify a
> table in a different database.
>
>   What I want is to CREATE TABLE <tablename> AS TABLE
> <otherdatabase><same_tablename>; but using a period (dot) to separate the
> source database and table name doesn't work. My searches of the 9.0.x
> docs
> have missed finding this information.


use Schemas instead of databases if this is what you need.   Combined
with search_path, this will get you the exact results you're looking
for.  in fact, the default search_path is $USER,public, so it will look
in a schema named after the current user before it looks in the default
schema...


--
john r pierce                            N 37, W 122
santa cruz ca                         mid-left coast