LoginSignup
tarou_urasima
@tarou_urasima (huga)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pg_bulkloadの制約チェックの動作について

pg_bulkloadの制約チェックの動作について

-背景-
bash shellスクリプトでpg_bulkloadを使用して、データを格納したいです。

Q:pg_bulkloadの制約チェックは、どのような動作をしているのでしょうか。

想定していた動作は以下ですが、

・すでにデータがあるテーブルに対して追加投入する際に、重複エラーが出た場合無視する

実際に動かしてみると以下の動作のように見えます。

・CSVファイル内に重複データが存在する場合、そのレコードを無視する(1つ目はロードされ、2つ目以降は無視)
・すでにデータがあるテーブルに対して追加投入する際に重複エラーが出た場合ロールバックする

使用時のコマンドは以下になります。

#!/bin/bash

pg_bulkload -d データベース名 -p ポート番号 -U ユーザー名 -o "OUTPUT=スキーマ名.テーブル名" -o "INPUT=test.csv" -o "LOADER=BUFFERED" -o "TYPE=CSV" -o "ENCODING=sjis" -o "CHECK_CONSTRAINTS=YES" -o "ON_DUPLICATE_KEEP=OLD" -o "DUPLICATE_ERRORS=-1" -u "err.csv"

pg_bulkloadについての知見がないため、ご教授お願いいたします。

0

No Answers yet.

Your answer might help someone💌