
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VIEWのCOPYってできないんですか?
-
重複を許すキーの構文がわかり...
-
接続中のユーザを表示する方法
-
SQLServerでの複数テーブルから...
-
PostgresqlのCASE分の使い方
-
PostgreSQLのanalyzeとは
-
カンマ区切りデータのWHERE条件
-
PostgreSQL8.3系のAutovacuum不...
-
Linuxでpostgresのテーブルの同...
-
ワークテーブル(ローカル)か...
-
シーケンス型で取得した値を別...
-
テーブル定義書作成時のIndex付...
-
SQL文で教えてください
-
SQLでUPSERTを一度に複数行やる...
-
postgreSQL カラムの全ての値を...
-
【SQL 2つのコードが重複する...
-
PostgreSQLのデータベースについて
-
デットロック回避策(autocommit...
-
レコードを1件のみ取得した後...
-
単純なselectが遅くなるのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
テーブルに存在しない列をselec...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
PostgreSQL レコードからアイテ...
-
javaでデータベース上のテーブ...
-
MS Access から PostgreSQL へ...
-
Postgresqlのレポート機能について
-
デットロック回避策(autocommit...
-
異なるデータベースでのINSERT...
-
テーブルにcsvファイルをインポ...
-
VIEWのCOPYってできないんですか?
-
reindex と update のデッドロック
-
UPDATE文の更新順序について
-
テーブルを作ろうとしたら。
-
レコードを1件のみ取得した後...
おすすめ情報