Tsvとして保存されているファイルがいくつかあります。それらをsqlで分析するために、postgresql
dbに挿入します。
ただし、私の問題は、このTSVファイルを_postgresql 9.2
_の下で_windows 7
_にINSERT
変換する方法です。
お返事ありがとうございます!
PS .:私は次のような正しい値でテーブルを作成しました:
CREATE TABLE ratings (distribution VARCHAR, votes VARCHAR, rank FLOAT, title VARCHAR);
ファイルはディレクトリにあります:
_C:/Users/testUser/Desktop/TSV/ratings.list.tsv
_
タブ区切り値の場合、COPYを使用できます。
http://www.postgresql.org/docs/current/static/sql-copy.html
ファイルの正確な形式に応じて、次のようになります。
COPY ratings FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv' DELIMITER '\t'
あなたはこのようなものが欲しい:
COPY ratings FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv' DELIMITER E'\t';
E'\t'
は必須です。それ以外の場合は、次のようなエラーが発生します。
エラー:COPYの区切り文字は1つの半角文字でなければなりません
TSVの列がテーブルと完全に一致しない場合は、次の手順でマッピングを定義することもできます。
COPY ratings (column_1, column_2, ... column_n)
FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv'
DELIMITER E'\t';
悲しいことですが、最も簡単な方法は、TSVをCSVに変換することです。空の文字列をnullに変換したり、ヘッダーをスキップしたりするために組み込まれているPostgresインポートユーティリティのほとんどはCSVのみです。
この単純な 6行Python answer on SO を参照してください。TSVを1時間試してみた後、Postgresで問題なくCSVを通常どおりロードしました。