PostgreSQL
ERROR: invalid page header in block 0 of relation base/5634493/5635769PostgreSQLで以下のエラーが出た。 このエラーはDB破損時に出るらしい・・・。 もはやどうしようもない・・・。今回はあるテーブルでのみエラーが出たので、 フルバックアップから該…
凡ミスで1時間程ハマった。pg_num_row()は結果の行数を返すメソッド。 今回使ったSQLは以下。 select count(*) from tb_test; 単純に count() を使ったSQLなんだけど、 これではダメなことに気づかなかった。count() は結果がなくても「0」という結果を返す…
in と exists の違いとは・・・in : 副問い合わせを評価した後に、親問い合わせへ結果を渡す。 exists : 親問い合わせを評価した後に、副問い合わせへ結果を渡す。なので、取得レコードを 親 or 副 のどちらで絞り込むかによって変わる。 副問い合わせで絞り…
group by は集計処理に使われるので、 指定する列には集計関数を指定しなければならない。でも、集計とか関係なく特定の列を出力したいことがある。 その場合は max() or min() で無理やり出力させる。 select log_date, sum(point), man(name) from tb_test…
group by と case の併用をメモ。group by は 集計関数しか使えないので、 集計関数内に case を含める。以下は sum を例にする。 id ごとに point_type = 1 の場合のみ point を加算する。 select id, sum( case when point_type = 1 then point else 0 end…
何か分からなかったのでメモ。 select count( distinct test_row) from tb_test; 特に説明はなし。
PostgreSQLで union + group by を使った時のメモ。普通に使うとできなかった・・・・。 order by が上手くいかない・・・。結論として、一度 union でデータを引っぱってテーブル化し、それを group by する。まずは必要なデータを普通に union する。 sele…
ハマった・・・。 PostgreSQLでは接続情報を以下のように文字列で渡す。 $info = 'host=sheep port=5432 dbname=mary user=lamb password=foo'; だが、なぜか接続できない。 apache権限(ブラウザから)で実行すると、エラー。 コンソールで直接実行すると、成…