1

1つのテーブルにかなりの数のcsvファイルをインポートしたいと思います。ファイルには含まれるフィールドの数が異なりますが、ヘッダー行には、宛先テーブルのフィールドに対応するpostgreSQLフィールドが含まれています。csvfieldnames

csv以下を使用して各ファイルに存在するフィールドを指定するのではなく、

COPY destination_table (comma_separated_fields_in_source_file) FROM '/filepath'...

postgres / pgAdminヘッダー行のフィールド名を認識する方法があるかどうか疑問に思いましたか?

ありがとう。

4

2 に答える 2

1

これはいたずらで、テストされていませんが、うまくいくかもしれません:

bash -c 'echo copy tablename \(; head -1 filename; echo \) from stdin with format csv header\;; cat filename ' | psql
于 2013-02-16T16:23:19.470 に答える
0

COPY はこれをネイティブにサポートしていませんが、これを処理する関数/ストアド プロシージャを作成することを考えるかもしれません。おそらく、「Foreign Data Wrapper」を使用して最初の行を読み取り、これから「COPY」SQL ステートメントを動的に作成します。text/csv 外部データ ラッパーについては、こちらを参照してください: http://www.postgresql.org/docs/current/static/file-fdw.html

于 2013-02-16T15:01:00.767 に答える