PostgreSQL DBのコピー、TABLEのコピー

データベース、テーブルを複製

データベースの複製

SQL

--複製 createdb -E UTF8 -U postgres -T foodb bardb

コピー元

foodb=# \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 --------+----------+------------------+--------------------+--------------------+------------ foodb | postgres | UTF8 | Japanese_Japan.932 | Japanese_Japan.932 | foodb=# \d リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+---------+------------+---------- public | foo | テーブル | postgres public | foo_seq | シーケンス | postgres

createdb(コピー)後

bardb=# \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 --------+----------+------------------+--------------------+--------------------+------------ foodb | postgres | UTF8 | Japanese_Japan.932 | Japanese_Japan.932 | bardb | postgres | UTF8 | Japanese_Japan.932 | Japanese_Japan.932 | bardb=# \d リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+---------+------------+---------- public | foo | テーブル | postgres public | foo_seq | シーケンス | postgres

テーブルの複製

SQL

--単純な複製 CREATE TABLE bar AS SELECT * FROM foo;

コピー元

pgdb=# \d foo テーブル "public.foo" 列 | 型 | 修飾語 --------------+---------+---------- foo_id | integer | not null foo_name | text | not null foo_category | integer | foo_flg | boolean | pgdb=# SELECT * FROM foo; foo_id | foo_name | foo_category | foo_flg --------+----------+--------------+--------- 100001 | リンゴ | 1 | t 100002 | バナナ | 1 | f 100003 | ネコ | 2 | t 100004 | イヌ | 2 | f (4 行)

CREATE TABLE(コピー)後

pgdb=# \d bar テーブル "public.bar" 列 | 型 | 修飾語 --------------+---------+---------- foo_id | integer | not null foo_name | text | not null foo_category | integer | foo_flg | boolean | pgdb=# SELECT * FROM bar; foo_id | foo_name | foo_category | foo_flg --------+----------+--------------+--------- 100001 | リンゴ | 1 | t 100002 | バナナ | 1 | f 100003 | ネコ | 2 | t 100004 | イヌ | 2 | f (4 行)

SQL

--カラムを絞り込んで複製 CREATE TABLE bar AS SELECT foo_id,foo_name FROM foo;

CREATE TABLE(コピー)後

pgdb=# \d bar テーブル "public.bar" 列 | 型 | 修飾語 --------------+---------+---------- foo_id | integer | not null foo_name | text | not null pgdb=# SELECT * FROM bar; foo_id | foo_name --------+---------- 100001 | リンゴ 100002 | バナナ 100003 | ネコ 100004 | イヌ (4 行)

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。