LoginSignup
aonoeyuya
@aonoeyuya (裕也 青上)

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!

postgresQLに項目順の異なるcsvをインポートする

【質問】 postgresQLにCSVからデータをSQLでインポートしたいです。 この際、CSVの項目順とpostgresQL上のインポート先のテーブルの項目順が異なる場合、どうやって紐付ければよいでしょうか?

【異なる場合のエラー例】
postgreQL上のテーブル(studentDB)

birthday name id name(last)
2019/01/01 tanaka 1 yuji
2019/02/01 sato 2 takeru

インポートしたいCSV

id name birthday name(last)
3 suda 2019/03/01 masaki
4 oseki 2019/04/01 sayuko

の場合、
\COPY studentDB FROM "C:\Users\aonoe\Destktop\importdata.csv"WITH CSV HEADER
のSQLで読み込ませると、
「invalid input syntax for type timestanp with time zone:"3"となります。
恐らく項目の順が考慮されておらず、 インポートしたいCSVファイルの最左項目のid=3 が、
postgres上のテーブルのBirthday項目(日付型)に入れられそうになったエラーだと思われます。

【試したこと】
①postgresQLテーブルの項目を指定して実施。 studentDB(id,studentDB(id,bitthday,name,birthday,name(last))
⇒「”,”で構文解析エラー」となります
項目に「name(last)」のように、カッコを付けたの原因でしょうか。。

②上記でエラーが出たため、その項目以外に絞ってインポートを試しました。 studentDB(id,studentDB(id,bitthday,name,birthday)
⇒extra data after last expected column となり、項目数があってない指摘?をされてしまいます。

縛りとして、できるだけCSVの項目、現存のpostgresQLの項目順はそれぞれ変えたくないで状態です。 どうすれば、インポートCSVの項目を対応させてインポートできるでしょうか?

0

2Answer

Your answer might help someone💌