2017-03-04 7 views
0

ちょうどPostgreSQLを学び始めました.CSSファイルまたはテキストファイルをインポートする方法を理解できませんでした。私は、SQLのバックグラウンドを持っていない、と私はインポートするCSVファイルとまったく同じ列名を持つデータベース内のテーブルを作成する必要がある場合私はよくわからない。大きすぎる(10G)ので、私のCSVファイルを開くことができないので、私はその列名が何であるか分からない。この場合、どうすればPostgreSQLにインポートできますか?別のことは、特定のドキュメントにcsvファイルを置く必要があるかどうかわかりません。csvまたはtxtファイルをPostgresqlにインポートできません

+0

ファイルの最初の数行を調べるには、 'head' UNIXコマンドを使います。最初にテーブルを作成し、次に 'COPY'コマンドでデータをインポートする必要があります。 –

+0

@LaurenzAlbe、作成したテーブルがcsvファイルとまったく同じ列名を持つ必要があることを意味しますか? – Bobo

+0

必ずしもそうではありません。 'COPY'コマンドで列を指定しないと、列は最初に最初に一致するなどのようになります。 'COPY'コマンドで列を指定することで列の順序を変更することができます。 'HEADER'オプションを使わないかぎり、列の* names *は無関係です。そして、それらはファイルから読み込まれます。 –

答えて

0

csvファイルをPostreSQLにインポートするには、必要なデータベースのcsvファイル値の列と一致するテーブルを作成する必要があります。

Linuxからインポートを行う場合は、PostgreSQLユーザーに、インポートするcsvファイルへのアクセス権を与える必要があります。

sudo chown postgres:postgres /path/to/csvfile 

あなたはまだ十分な権限を持っていない場合、あなたは、ファイルへのフルアクセスを与えることができます

sudo chmod 777 /path/to/csvfile 

次に、あなたが好きなら、あなたは、Linuxのコマンドラインから

/path/to/psql -d databasename -U postgres -c "copy tablename from '/path/to/csvfile' delimiter ',' csv" 
を実行することができます

psqlコマンドラインから実行する場合は、

copy tablename from '/path/to/csvfile' delimiter ',' csv 
関連する問題