2016-10-06 3 views
4

Postgresの同じDB内でschema1からschema2までの4つのテーブルだけをコピーしたいと思います。また、schema1にもテーブルを保持したいと考えています。どのようにpgadminと同様にpostgresコンソールから行うことができますか?元のスキーマを保持しているPostgresの同じDB内の特定のテーブルを別のスキーマにコピーするにはどうすればいいですか?

insert into schema2.the_table 
select * 
from schema1.the_table; 
+0

テーブルを「移動する」には、少なくとも「移動する」という私の理解では、元のテーブルを保持しない**ことが必要です。 –

+0

[テーブル(インデックスを含む)をポストグルにコピーする]の複製があります(http://stackoverflow.com/questions/198141/copy-a-table-including-indexes-in-postgres) –

答えて

9

あなたはソースから宛先にデータを挿入するとcreate table ... like

create table schema2.the_table (like schema1.the_table including all); 

を使用することができます。挿入する必要はありません。テーブルはデータとともに作成されます。

CREATE TABLE schema2.the_table 
AS 
SELECT * FROM schema1.the_table; 
6

あなたが選択するとCREATE TABLEを使用することができます。

+0

これは1つですべてを行いますクエリ – MANU

+0

@MANU:しかし、制約とインデックスをコピーしません。 –

+0

@a_horse_with_no_nameはい。良い点..それがあります.....私の間違い... – MANU

関連する問題