ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

PostgreSQL

coalesce がマジ便利

select coalesce(null,1,null,2) from dual ↓ 1 select coalesce(null,null,null,2) from dual ↓ 2 select coalesce(null,null,null,null) from dual ↓ null でもスペルが覚えられない

縦のカラムを横に並べるtips(2次元配列)

安請け合いの危険さを喉元過ぎたらすぐ忘れる。 SELECT 結果を出力するだけの簡単なお仕事です、ただし出力する1レコードには複数のレコードの情報を含めて下さい。 つまり、コレを name | year | price --------+------+-------- guest1 | 2001 | -15000 g…

PL/pgSQL に着手

DBサーバに複雑な処理をさせる必要性が全く浮かばないんで全然やったこと無かったけど、プロシージャがしがし使うことになったので開発環境を準備。 サンプル(実行すると1を返すファンクション) CREATE OR REPLACE FUNCTION sample_f () RETURNS INTEGER …

プログラムを介して行番号をつけるTips

DBI、DBD::PG のリハビリを兼ねて書き書き。 まずはテスト用のテーブルを作成、てきとーにデータも突っ込んでおく。 create table test ( id integer unique, name text, color text ); insert into test values(1, 'hoge', 'red'),(2,'foo','green'),(3,'ba…

ラージオブジェクトを使ってみた サーバサイド編

DBでバイナリデータの扱う練習をかねて、PostgreSQL のラージオブジェクトで遊んでみた。PostgreSQL 8.3.4文書 ラージオブジェクト::サーバ側の関数 Bytea型もあるけど、psql からデータ出し入れする方法が思い当たらないのでとりあえず。 ちなみにラージ…

課題への挑戦

MySQL で試したことを PostgreSQL でやるとどうなるか。先ずはテーブル作成 $ psql83 -U postgres postgres=# create table master(tmp1 varchar(10), tmp2 varchar(10), tmp3 varchar(10) ); CREATE TABLE postgres=# create table code(tmp1 varchar(10), …

サーバ起動シェル

あまりにも使い勝手が悪いのでシェルを組んでおく。 要件としては、pg_ctl だけでも postgres 権限で実行出来るようにしたい。 ということで、pg_ctl をpostgres 権限で叩くシェルを書いてみた。 pg_ctl_postgres #!/usr/bin/env sh if [ "${1}" != "" ] ; t…

MacPorts で PostgreSQL 導入

MySQL を入れたら、PostgreSQLが恋しくなった。 使う使わないは置いといて、使えるようにだけしておくことに。先ずはパッケージを検索。 $ port search postgresql postgresql7 databases/postgresql7 7.4.21 The most advanced open-source database availa…

師匠、すんませんでした

$PGDATA/pg_hba.conf こいつの設定で host all all 192.168.12.10 255.255.255.255 passwdとなっている場合、psqlによる接続時には絶対にパスワード入力が必要、という認識でした。 本来なら設計段階で気付いていなければいけない内容であり、実機環境が与…

なぜ一括集計が出来ないのか

ファイル読み込みなら可能なのに、DBだと出来ない謎… テーブル結合して UPDATE って出来ないのかな?? と思ってごそごそしてたら、UPDATE の WHERE節でテーブル結合できるっぽいね☆ IDテーブル CREATE TABLE owner ( id bigint NOT NULL, create_date times…