PostgreSQL で CSV をインポートする方法を備忘録として残しておく
方法
\COPY を使用する
環境
- PostgreSQL: 13.3
実際のコード
su - postgres
psql
\c {DB 名};
\COPY {テーブル名} FROM '{csvファイルパス}' DELIMITER ',' CSV;
# 例 HEADER なしの場合
\COPY users FROM './users.csv' DELIMITER ',' CSV;
# 例 HEADER ありの場合
\COPY users FROM './users.csv' DELIMITER ',' CSV HEADER;
# エクスポートする場合は以下
su - postgres
psql
\c {DB 名};
\COPY {テーブル名} TO '{csvファイルパス}' WITH CSV DELIMITER ',';
# 例 HEADER なしの場合
\COPY users TO './users.csv' WITH CSV DELIMITER ',';
# 例 HEADER ありの場合
\COPY users TO './users.csv' WITH CSV HEADER DELIMITER ',';
# 例 10 件取得(id 昇順)
\COPY (select * from users order by id limit 10) TO './users.csv' WITH CSV HEADER DELIMITER ',';
Shell Script として行う場合は以下のようにする
#!/bin/sh
# ユーザを postgres に切り替えたままでコマンドの実行を行う ※CSV インポート
su - postgres <<EOF
psql
\c {DB 名};
\COPY {テーブル名} FROM '{csvファイルパス}' DELIMITER ',' CSV;
EOF