csvデータをPostgreSQLにコピー

このQ&Aのポイント
  • PostgreSQLにcsvデータをコピーする方法を調べてみました。
  • Windows版の場合はpgAdminIIIのクエリーツールを使用して、指定のテーブルにCSVデータをインポートすることができます。
  • Linux版では、/etc/init.d/postgresql startコマンドを使用してPostgreSQLを起動し、COPYコマンドを使用してCSVデータをテーブルにインポートします。
回答を見る
  • ベストアンサー

csvデータをPostgreSQLにコピー

# rpm -qa | grep postgresql を実行してみると、 postgresql-python-7.2.2-1 postgresql-odbc-7.2.2-1 postgresql-7.2.2-1 postgresql-perl-7.2.2-1 postgresql-server-7.2.2-1 postgresql-devel-7.2.2-1 postgresql-contrib-7.2.2-1 postgresql-libs-7.2.2-1 postgresql-jdbc-7.2.2-1 postgresql-tcl-7.2.2-1 が表示されたため、 # postgres start を実行すると、 "root" execution of the PostgreSQL server is not permitted. The server must be started under an unprivileged user id to prevent more information on how to properly start the server. と表示されます。そこで、本サイトのQ&Aを参考にして、 # /etc/init.d/postgresql start を実行したところ、起動しました。Windows版では、pgAdminIIIのクエリーツールで以下のようにすれば、csvデータ(UTF8)をPostgreSQLの所定のテーブルにインポートできます。 COPY tablename FROM E'C:\\test\\testdata.csv' WITH CSV; Linux版ではどのようにするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

基本は同じです。 psql コマンドでデータベースに接続できていますか? ユーザーやテーブルが作成できているなら、そこで COPY tablename FROM '/var/test/testdata.csv' WITH CSV; のようにすればOKです。 パスの書き方がWindowsと異なるだけでコマンドの構文はまったく同じです。

Feruza
質問者

お礼

ご回答ありがとうございました。 Terminalでpsqlコマンドを使用できると思います。pgAdminIIIインストールを思案していたところで、助かったような気がします。しかし、アプリケーションを動作させるには、ApacheやPHPをインストールする必要があることを考えると、やはり避けられないですね。

関連するQ&A

  • csvデータをPostgreSQLにインポート

    RedHat8.0にpostgresql-7.2.3.tar.gzをインストールしています。database_6に接続し、 database_6=# COPY tablename FROM '/var/test/testdata.csv' WITH CSV; を実行すると(tablenameとtestdataとは同一名にしてあります)、 ERROR: parser: parse error at or near "csv" と表示されてしまいます。どこが悪いのでしょうか?

  • JDBC(PostgreSQL)のjdbc.jarファイルがありません。

    Fedora8にyumでpostgresqlをインストールして 下記を参考にしてJDBCのPOSTGRESQLを使用しようとしましたが /usr/share/pgsql/jdbc7.1-1.2.jarとかがありません。 jarファイルはどこにインストールされているのですか? 調べる方法を教えて下さい。 http://www.hellohiro.com/jdbcpostgresql.htm 下記のコマンドでは、■があるのでインストール済みだと思います。 classpathは設定していません。 ]# rpm -qa | grep -i postgresql postgresql-libs-8.2.11-1.fc8 postgresql-tcl-8.2.11-1.fc8 postgresql-server-8.2.11-1.fc8 ■postgresql-jdbc-8.2.506-1jpp.fc8 postgresql-8.2.11-1.fc8 postgresql-python-8.2.11-1.fc8 postgresql-contrib-8.2.11-1.fc8 ]#

    • ベストアンサー
    • Java
  • PostgreSGLをインストールできない

    YumでRed Hat 8.0(メモリ256MB、32ビット)にpgdg-redhat-8.0-5.noarch.rpmを下記手順に従ってインストールしようとしましたが、インストールできません。 1.共有メモリの設定確認(shmmaz:33554432、shmall:2097152) 2.Yumリポジトリの設定(http://yum.pgrpms.org/howtoyum.phpに記載された内容と実際の設定ファイルとに相異がありました) 3.installコマンドを指定して実行 3.でcommand not foundと表示されるため、# yum search postgresqlを実行しましたが、command not foundと表示されます。そこで、 # rpm -qa | grep postgresql を実行してみると、 postgresql-python-7.2.2-1 postgresql-odbc-7.2.2-1 postgresql-7.2.2-1 postgresql-perl-7.2.2-1 postgresql-server-7.2.2-1 postgresql-devel-7.2.2-1 postgresql-contrib-7.2.2-1 postgresql-libs-7.2.2-1 postgresql-jdbc-7.2.2-1 postgresql-tcl-7.2.2-1 が表示されます。このため、# yum -y install 'postgresql*'も試してみましたが、command not foundと表示されてしまいます。これは、64ビット版と32ビット版との違いによるものでしょうか?手元にある試料には、ソースコードからのインストール方法も64ビット版のものです。

  • RPM版PostgreSQLのアンインストールについて

    みなさん、こんばんは。 さっそくですが、質問があります。 現在サーバーを構築しているのですが、その中にpostgreSQLを入れて動かしたいのです。 使用OSはRedhat Linux 7.1JのFTP版で、始めからインストールされているpostgreSQLのRPM版をアンインストールして、最新版をインストールし直したいと 思っています。 (最新版はRPMのではなく、postgresql-7.1.3.tar.gzをインストールするつもりです。) そこで、rpm -eコマンドでpostgreSQLをアンインストールしたいのですが、 postgresql-7.0.3-8とpostgresql-devel-7.0.3-8を削除しようとしても下記の様なエラーが出て、アンインストールできません。 rpm -e postgresql-devel-7.0.3-8 とすると・・・・  エラー:これらのパッケージを削除すると依存性を破壊します。  postgresql-devel >= 7.0は perl-DBD-Pg-0.95-1に必要とされています。 rpm -e postgresql-7.0.3-8 とすると・・・  エラー:これらのパッケージを削除すると依存性を破壊します。  postgresql = 7.0.3はpostgresql-devel-7.0.3-8に必要とされています。  postgresqlはphp-pgsql-4.0.4pl1-9に必要とされています。  libpq.so はperl-DBD-Pg-0.95-1に必要とされています。  libpq.so はphp-pgsql-4.0.4pl1-9に必要とされています。 いったいどうやったら、削除できるのでしょうか? どなたか教えてください。

  • Encoding変更

    RedHat8.0であるため、postgresql-7.2.3.tar.gzをインストール(初期化を含む)していましたが、検証をしているうちに、下記コマンドを実行できないこと COPY tablename FROM '/var/test/testdata.csv' WITH CSV; また、encodingにUTF8を指定できことが分かりました。そこで、postgresql-7.2.3.tar.gzをアンインストールし、postgresql-8.0.26.tar.gzをインストール(初期化を含む)しましたが、Encodingを確認したところ、EUC_JPのままになっていました。アンインストールが上手くできなかったためと考えられますが、どのようにすれば、UTF8に変更できるでしょうか?

  • 大容量のCSVファイルをインポートするには。

    お世話になります。 Windows版のPostgreSQLをインストールしてCSVファイルを読み込ませようとしていますが途中でエラーが発生してしまい困っています。 取り込んでいるCSVファイルの件数は約65万件です。 その際に実行している下記のコマンドは以下の通りです。 SET client_encoding TO 'SJIS'; COPY T_SAMPLE FROM 'C:\test.csv' WITH CSV; また途中で発生したエラーの内容は以下の通りです。 ERROR: メモリ不足です DETAIL: 1073708532バイトを持つ文字列バッファを65534バイト多く、大きくすることができません。 CONTEXT: T_SAMPLEのCOPY。行番号 231916 どのようにしたら大容量のCSVファイルをデータベースにインポートする事ができるのでしょうか。 大変、申し訳ありませんがどうか私を助けて下さい。 些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。 私の環境のOSは「Windows Vista Ultimate」でPostgreSQLは「PostgreSQL 9.5.4」です。 何卒、宜しくお願いします。では、失礼します。

  • Linuxについて

    春から大学に通うためパソコンを購入をしなければいけないのですが、 XPとLinuxがインストールされているということでした。 一応、大学で推奨のパソコンが販売されているのですがスペックがあまりよくなく 価格も高いのでLinuxについて全くの無知ですが自分でLinuxを入れてみようと考えております。 やはりOSのインストールは難しいでしょうか?? また、 ・tcpdump:パケットアナライザ ・XOrg-devel:X Window 開発環境 ・XOrg-gl-devel:X Window上のOpen GL 開発環境 ・glut:OpenGL 実行環境 ・glut-devel:OpenGL 開発環境 ・postgresql:SQL データーベース PostgreSQL ・postgresql-server:PostgreSQLのDBサーバー ・postgresql-jdbc:PostgreSQLのJDBCのドライバ のソフトウェアもインストールしておくことということでした。 アドバイスよろしくお願いします。

  • pgAdminIIIアンインストールについて

    windows7にインストールされていたpgAdminIII1.8.?(詳細なバージョン不明) をインストールして使用しておりました。 DB本体もインストールの必要が出てきたため、PostgreSQL9.1をインストールしました。 同時にpgAdminIII1.14もインストールされました。 DBのバックアップを使用と、pgAdminIII1.14でDBを選択し"ツール"から"バックアップ"を選択し バックアップを試みたのですが、バージョン違いでバックアップできないとのエラーがでました。 エラーの内容からpgAdminIII1.8のバックアップ実行ファイル呼び出しているものと思われたので pgAdminIII1.8、PostgreSQL9.1をコントロールパネルからアンインストールし、 インストールされていたフォルダを削除、 postgresのユーザーアカウントを削除、 postgresのユーザーフォルダを削除 再起動の後、PostgreSQL9.1を再度インストールしました。 pgAdminIII1.14からバックアップを試みようとしたのですが、 "ツール"からバックアップを選べなくなっており(グレーアウト) 右クリックメニューにも"バックアップ"が出てこなくなりました。 アンインストール前に設定していたサーバの設定が残っていたため、 正常にアンインストールされていなかったと推測しております。 困っております。 対処法をご存知の方がいらっしゃいましたら 教えてください。 よろしくお願いいたします。

  • linux postgres アンインストールにつ

    いつもお世話になっております。 postgres8系をアンインストールしたく、下記を実行しましたが、 依存関係のエラーが続出してしまい、どうしたらよいかわからなくなってしまいました。 どのようにするのが、定石なのでしょうか。 お手数をお掛けしますが、何卒ご教授くださいますようお願い申し上げます。 [root@localhost ~]# rpm -qa | grep postgres postgresql-server-8.1.22-1.el5_5.1 postgresql-8.1.22-1.el5_5.1 postgresql-libs-8.1.22-1.el5_5.1 postgresql-tcl-8.1.22-1.el5_5.1 postgresql-contrib-8.1.22-1.el5_5.1 You have new mail in /var/spool/mail/root [root@localhost ~]# rpm -qa | grep postgres | xargs rpm -e エラー: 依存性の欠如: libpq.so.4 は (インストール済み)apr-util-1.2.7-11.el5_5.2.i386 に必要とされています libpq.so.4 は (インストール済み)php-pgsql-5.1.6-27.el5_5.3.i386 に必要とされています [root@localhost ~]# rpm -qa | grep apr-util apr-util-1.2.7-11.el5_5.2 [root@localhost ~]# rpm -qa | grep apr-util | xargs rpm -e エラー: 依存性の欠如: libaprutil-1.so.0 は (インストール済み)httpd-2.2.3-43.el5.centos.3.i386 に必要とされています [root@localhost ~]#

  • PHPからPostgreSQLにアクセスするには?

    PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。 ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか? エラーメッセージは下記の通りです。 Fatal error: Call to undefined function: pg_connect() in C:\Apache2……