いろいろ
カンマ区切りで出力する
persdb=# \a Output format is unaligned. persdb=# \pset fieldsep ',' Field separator is ",". persdb=# select ~~~~~~;
テーブルを csv で出力する
\pset format unaligned ←出力形式を指定 \pset fieldsep ',' ←フィールドのセパレータにカンマ区切りを指定 \pset footer ←フッタ(行数表示等)を出力させない \encoding shift-jis ←文字コードをs-jisに指定 \o ************.csv ←出力ファイルを指定 select * from ~~~~~ ←ここにSQLを書く
ダンプいろいろ
全部ダンプ :pg_dump -U postgres -f DumpAll.sql persdb 定義だけダンプ :pg_dump -s -U postgres -f TableCreate.sql persdb データだけダンプ :pg_dump -a -U postgres -f DataDump.sql persdb 特定のテーブルのダンプ:pg_dump -U postgres -t テーブル データベース名 > dump.out
リストア :psql -U postgres -d dbname -f DumpAll.sql とか
置換
update grpfacilityservice set service_name=replace(service_name,'-','ー') where grp_id='G16' and facility_id='F0708'; 意味:service_nameカラムの中の'-'を'ー'に置換する
database一覧の表示
psql -l
databaseのChange
psql \c
windowsのpostgrs
リストア方法
C:\Program Files\[[PostgreSQL]]\8.1\bin> psql -U postgres DB名 <dumpファイル名
copyコマンドの実行方法
persdb=# \copy facilityreservation from 'C:\\csv\\facilityreservation.csv' with delimiter ','
iコマンドの実行方法
persdb=# \i 'C:\\csv\\update\grpfacilityaddress.sql'
変更したconfigファイル
/usr/local/pgsql/data/postgresql.confのlisten_addressesの値を'*'に設定します。 listen_addresses = 'locao host'→ listen_addresses = '*'
/usr/local/pgsql/data/pg_hba.confファイルで認証設定を行います。 すべてのホストからの接続を無条件に許可する設定。 host all all 0.0.0.0 0.0.0.0 trust
NULL変換
LEFT INNER JOIN したときなんかに、nullの代わりに「0」を表示したいとき COALESCE(r.sum,0) なんてやってみるとよい