¥timing
と叩くと、
「Timing is on.」
と表示され、以降クエリを実行するたびにその実行時間が表示される。
「Time: 3.996 ms」
こんな風に表示されると、explainでコストを計測するより分かりやすいような気がします。
もう一度¥timingを叩くと、オフになります。
¥timing
と叩くと、
「Timing is on.」
と表示され、以降クエリを実行するたびにその実行時間が表示される。
「Time: 3.996 ms」
こんな風に表示されると、explainでコストを計測するより分かりやすいような気がします。
もう一度¥timingを叩くと、オフになります。
psqlのオプションで
-o filenameをつけると、結果をすべてファイルに出力してくれます。
psql -U ユーザ名 -c ‘SELECT * FROM HOGE;’ -o ‘hoge.txt’;
これで、問い合わせ結果はhoge.txtに書き出されます。
が、postgresが書き込みのできるディレクトリでないと書き込みエラーが出ます。
select to_char(age(date(‘2007-1-1′),date(‘2005-9-6′)),’MM’ )::int + to_char(age(date(‘2007-1-1′),date(‘2005-9-6′)),’YYYY’ )::int * 12 as date_m;
OracleでいうところのMONTHS_BETWEENですね。
何ヶ月継続、なんていうデータ抜きたいときに使えるかと。
8.1.4で動作、他のバージョンは未確認
バックアップ
pg_dump -U 【DBオーナ名】-f 【出力先パス】 【DB名】
レストア
psql -U 【DBオーナ名】【DB名】 < 【ダンプファイルのパス】
何もないトコにレストアするなら、ユーザとDBを先に作成しておいて、そこにレストアする。
バックアップファイルって言っても、構成やデータをテキストファイルに書き出しているだけ。
まぁ、おかげで加工はしやすいし、内容の把握もしやすいです。
select coalesce(カラム名, ‘0′);
指定したカラムがNULLだったら「0」が返って来る。
select coalesce(カラム名その1, カラムその2名,’0′);
「カラム名その1」がNULLだったら「カラムその2」の値を使う。「カラムその2」がNULLだったら「0」を返す。
「ISNULL」はポスグレにはないらしい。
SELECT EXTRACT(YEARS FROM AGE(TO_DATE(文字列格納カラム,’YYYYMMDD’))) AS USER_AGE FROM テーブル名;
select attname from pg_attribute where attrelid = (select oid from pg_class where relname = ‘テーブル名’) and attnum > 0 and atttypid > 0;
SELECT * FROM PG_TABLES;
もちろんWHERE条件を加えて絞り込むことも可能。まずは一覧を表示してみればどういう情報が出力されるのかわかる。
\d
でも十分なんですけどね。