PostgreSQLの「COPY FROM」において重複するキーを無視する方法


  1. テーブルを作成します: まず、データをインポートするためのテーブルを作成します。例えば、以下のようなテーブルを考えます。
CREATE TABLE my_table (
  id SERIAL PRIMARY KEY,
  name VARCHAR(100),
  age INTEGER
);
  1. データを準備します: インポートするデータを準備します。CSVファイルやテキストファイルなど、COPY FROMでサポートされている形式であればどのフォーマットでも構いません。

例えば、以下のようなデータを持つCSVファイル「data.csv」を用意します。

1,John,25
2,Emily,30
3,John,35
4,Michael,40
  1. COPY FROMコマンドを実行します: COPY FROMコマンドを使用してデータをインポートします。重複するキーを無視するために、オプションとして「ON CONFLICT DO NOTHING」を指定します。
COPY my_table (id, name, age)
FROM 'data.csv'
CSV
ON CONFLICT DO NOTHING;

上記のコマンドでは、データを「my_table」テーブルにインポートし、重複する「id」キーがある場合は無視します。

  1. 結果の確認: データのインポートが完了したら、結果を確認します。重複するキーが無視され、他のデータは正常にインポートされているはずです。