私はTSVファイルをPostgreSQLにインポートしようとしています。私はそうのようなTSVファイル持ってPostgresqlのCOPYコマンドを使用して、連続した一重引用符でファイルをインポートするにはどうすればよいですか?
CREATE TABLE description (
id TEXT
, effective_time DATE
, active INT
, module_id TEXT
, concept_id TEXT
, language_code TEXT
, type_id TEXT
, term TEXT
, case_significance_id TEXT
);
:私は、テーブルを作成した(Gentamicin 2''-nucleotidyltransferase
を)真ん中の2つのエントリがダブルプライムのシンボルとして作用する2つの連続した単一引用符を持っていることを
id effectiveTime active moduleId conceptId languageCode typeId term caseSignificanceId
12118017 20170731 1 900000000000207008 6708002 en 900000000000013009 Intrauterine cordocentesis 900000000000448009
12119013 20020131 1 900000000000207008 6709005 en 900000000000013009 Gentamicin 2''-nucleotidyltransferase 900000000000020002
12119013 20170731 1 900000000000207008 6709005 en 900000000000013009 Gentamicin 2''-nucleotidyltransferase 900000000000448009
12120019 20020131 1 900000000000207008 6710000 en 900000000000013009 Nitric oxide 900000000000020002
注意を。
私は
psql=# \copy description FROM /path/to/foo.txt WITH DELIMITER AS E'\t';
を実行した場合、私はERROR: missing data for column "effective_time"
を取得します。私はそれが''
が列の境界の解析を台無しにしているからだと思う。
私が発見し\'\'
または''''
のいずれかで''
インスタンスを交換し、それぞれCSV QUOTE E'\''
またはCSV QUOTE ''''
を、使用して試してみましたが、私は同じエラーを取得します。
ファイルを正しくインポートするには、ファイルを編集するか、\copy
コマンドを変更しますか?
貼り付けたサンプルデータをテキストエディタにコピーして調べました。ペーストしたものにはタブの代わりにスペースがあります。すべての区切り文字をタブで置き換えると、copyコマンドが正常に動作します。 –
あなたは正しいです。ドキュメンテーションはこれがTSVであり、それは1つのように見えると示唆しましたが、決してそれを確認しませんでした。ありがとうございました。 –