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の項目を対応させてインポートできるでしょうか?