読者です 読者をやめる 読者になる 読者になる

約束の地

あの日あの時のキャロの想い出

Ubuntu 16.04 LTS に pg_bulkload をインストールする方法

Linux

pg_bulkload

COPY コマンドより便利な pg_bulkloadですが*1、Ubuntu ですとコンパイルしなければなりません。

必要なものを入れていく

コンパイルのためには以下をapt-getしましょう*2postgresql-server-devは各自のバージョンに合わせて番号を変更してください。

# apt-get install libpq-dev
# apt-get install libreadline-dev
# apt-get install libpam0g-dev
# apt-get install postgresql-server-dev-9.5
# apt-get install ledit
# apt-get install libedit-dev

コンパイル

あとは GitHub からソースを落としてきてmakemake installでオッケーです。生成されたバイナリは/usr/local/binあたりに置いとけばよいでしょう。

*1:例えば主キーが重複している場合、COPY だと問答無用で全てインポート失敗になるが、pg_bulkload だと DUPLICATE_ERRORS = -1 でスキップできる

*2:もしかしたら一部不要かも

MySQL から「改行」「カンマ」「ダブルクォート」「シングルクォート」を含むフィールドをエクスポートして他のデータベースにインポートする方法

プログラミング

MySQL からのエクスポート

やたら長い標題になってしまいましたが、MySQL からエクスポートしたデータに以下のような内容が含まれていた際に、その情報を失わずにいかに他のデータベース(や Excel*1 など)にインポートするか、ということです。なお、ここでは CSV(Character Separated Values)で吐き出した場合を考えています。

  • 改行
  • カンマ
  • ダブルクォート
  • シングルクォート

*1:Excelは無理かも

続きを読む

Ubuntu 16.04 LTS にて psycopg2 のインストール時にエラーが出る場合

Linux プログラミング

結論

以下を入れましょう。

# apt-get install python3-dev
# apt-get install libpq-dev

これでエラーが出ないはずです。

# pip install psycopg2
Installing collected packages: psycopg2
  Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.6.2

PostgreSQL でダブルクォートを含んだフィールドが正しくインポートできない場合

プログラミング

PostgreSQL で CSV ファイルのインポート

PostgreSQL にて CSV(広義の意味の方で、Character Separated Values)からのインポートをする場合に、ダブルクォートが含まれているフィールドがインポートできずにハマった話です*1

*1:ダブルクォートをフィールドに含むことの是非は置いといて

続きを読む

SQLite で空の値が指定できない場合

プログラミング

SQLite で空の値

例えば、以下のようなデータがあったとします。

id money
1 1000
2
3 500

このテーブルでmoneyが空であるレコードを指定したい場合に結構ハマってしまいました。

ダメな書き方

以下の書き方だとダメでした。

money = ""
money = ''
money = NULL
money IS NULL

結論

これは気づかなかった。

money IS ""
Powered by はてなブログ