2017-11-29 39 views
0

私は自分のpostgresサーバーに "new_test"というテーブルを作成しました。私はローカルのMacのCSVファイルから "test.csv"表。私の "new_test"テーブルと "test.csv"ファイルの両方に "compkey"という1つのカラムがあります。私はcsvファイルに4行しか持っていません。コマンドをのpsqlも、次のとおりです。psql/copy "そのようなファイルやディレクトリはありません"

\copy new_test(COMPKEY) from ‘TEST.csv’ with delimiter ‘,’ csv header;

しかし、私はこのエラーメッセージの取得維持:私は正しいファイルパスを取得する\cdを試してみました、私は右側のフォルダによ確認している‘TEST.csv’: No such file or directory

\! ls、「TEST.csv」ファイルが表示されます。

\copy new_test(COMPKEY) from '/Users/the/rest/of/the/file/path/TEST.csv’ with delimiter ‘,’ csv header;

を...しかし、私は同じエラーメッセージが表示されます:私はまた、このように、私のMac上の絶対パスを試してみました。私は何が間違っているか不足していますか?

+0

@VaoTsun正しい、私はコピー/の代わりにCOPYを使用している参照の唯一の違いは、? '' 'エラー:ファイルへのCOPYのためにスーパーユーザーでなければなりません。 ヒント:誰でもstdoutまたはstdinにCOPYできます。 psqlの\ copyコマンドは誰でも使えます.''' psqlを起動して動作するかどうかを '' 'sudo'''で試してみることができます。 –

+0

いいえ - 悪いコピー貼り付け。デリミタ '、' csv header;で '/Users/the/rest/of/the/file/path/TEST.csv 'から' \ new_test(COMPKEY)をコピーしてください。絶対パスの場合はdiffがスラッシュです。 –

+0

@ VaoTsunこれは私のために、また働く。私は、スラッシュが絶対パスを示すために使用されていたことを認識していませんでした。 –

答えて

0

絶対パスに先頭のスラッシュがありません。それはrootから始めるべきです。これ以下で動作するはずです:

\copy new_test(COMPKEY) from '/Users/the/rest/of/the/file/path/TEST.csv' with delimiter ',' csv header; 

記事の例:https://www.linux.com/blog/absolute-path-vs-relative-path-linuxunix

An absolute path is defined as the specifying the location of a file or directory from the root directory(/)

関連する問題