
PostgreSQL、外部ファイルからDBへの振り分け反映の方法
早速ですが質問させて頂きます。
『外部ファイル.txt』内容
------ここから------
A B C D E F G H I
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
B C D E F G H I A
4 5 6 7 8 9 1 2 3
5 6 7 8 9 1 2 3 4
------ここまで------
上記のようなスペース区切りの文字ファイルがあるとして、このファイルのデータを
英字から始まる行はtable1へ、数字から始まる行はtable2へと振り分けたいです。
現在、1つのテーブルに反映させることは以下のコマンドを使用することにより可能なのですが、
2つのテーブルに振り分ける方法は全く思い浮かびません。
1つのテーブルに反映させる方法
\COPY table1 from 'C:\\~ファイルパス~\\外部ファイル.txt' delimiters ' ' null ''
下記のようなファイル内容でもかまいません。
------ここから------
A B C D E F G H I
--------------------
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
--------------------
B C D E F G H I A
--------------------
4 5 6 7 8 9 1 2 3
5 6 7 8 9 1 2 3 4
------ここまで------
あるいは
------ここから------
A B C D E F G H I
--------------------
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
------ここまで------
わかる方がいらっしゃいましたらご回答いただければと思います。
また、出来ないようであれば何か参考になりそうな情報を教えていただければありがたいです。
PostreSQLのバージョンは8.2?です。
不足している情報がありましたら指摘してください。
以上です、お手数かけますがよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
Windowsみたいなので、FINDSTRコマンドを使うといいと思います。
FINDSTR /B [a-zA-Z] 外部ファイル.txt | psql -c "COPY table1 FROM stdin DELIMITERS ' ' NULL ''"
FINDSTR /B [0-9] 外部ファイル.txt | psql -c "COPY table2 FROM stdin DELIMITERS ' ' NULL ''"
外部コマンドを使わないんだったら、table1にトリガを定義して英字でなければtable2に挿入するように作り込むという手もありますね。
ご回答頂きありがとうございました。
FINDSTRコマンドですか…初めて知りました。
実はトリガーも使用したことがないため、まだまだ勉強が必要だと感じております…。
とても助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
2つのテーブルで引き算 postgres
-
PostgreSQL 8.0.2 の ERROR: r...
-
テーブルに存在しない列をselec...
-
テーブル定義書作成時のIndex付...
-
SQLでUPSERTを一度に複数行やる...
-
複数テーブルにまたがるmax
-
SQL 同じテーブル構造の複数の...
-
インデックスについて
-
テーブルにcsvファイルをインポ...
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
VARCHAR型の数値比較
-
SQL*LoaderでCSVから指定した列...
-
SQL、2つのテーブルで条件一致...
-
外部キーだけのテーブル(主キ...
-
「テーブルに座って……」という...
-
一つ前に戻るには…
-
カラム位置変更
-
会社の飲み会の幹事になり、座...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
単純なselectが遅くなるのです...
-
MS Access から PostgreSQL へ...
-
javaでデータベース上のテーブ...
-
2つのテーブルで引き算 postgres
-
Postgresqlのレポート機能について
-
reindex と update のデッドロック
-
Postgresのデータ領域の拡張に...
-
デットロック回避策(autocommit...
-
テーブルにcsvファイルをインポ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
PostgreSQL レコードからアイテ...
-
同一カラムに複数条件指定
-
備品管理のデータベースについて
-
PostgresSQLでテーブル定義の抽...
-
DISTINCTとGROUP BYの違い
おすすめ情報