1. ホーム

[解決済み】PostgreSQLのテーブルから特定の行をINSERT SQLスクリプトとしてエクスポートする。

2022-04-02 10:05:52

質問

という名前のデータベーススキーマを持っています。 nyummy という名前のテーブルと cimory :

create table nyummy.cimory (
  id numeric(10,0) not null,
  name character varying(60) not null,
  city character varying(50) not null,
  CONSTRAINT cimory_pkey PRIMARY KEY (id)
);

をエクスポートしたい。 cimory テーブルのデータをSQLスクリプトファイルとして挿入します。ただし、都市が'tokyo'であるレコード/データのみをエクスポートしたい(都市データはすべて小文字であると仮定)。

どうすればいいのでしょうか?

フリーウェアのGUIツールでの解決でもコマンドラインでの解決でも構いません(GUIツールでの解決はより良いですが)。pgAdmin IIIを試しましたが、これを行うためのオプションが見当たりません。

どのように解決するのですか?

エクスポートしたいセットを持つテーブルを作成し、コマンドラインユーティリティpg_dumpを使用してファイルにエクスポートします。

create table export_table as 
select id, name, city
from nyummy.cimory
where city = 'tokyo'

$ pg_dump --table=export_table --data-only --column-inserts my_database > data.sql

--column-inserts は、カラム名を持つ挿入コマンドとしてダンプされます。

--data-only スキーマをダンプしません。

以下のコメントにあるように、テーブルの代わりにビューを作成することで、新しいエクスポートが必要なときにテーブルの作成を省略することができます。