最近、PostgreSQL(というかPipelineDB)をいじる機会があったのでメモ。
RDBMSにあるとうれしい、というかPostgresにあって「これ良いな」と思った機能を適当に列挙するの回。
CREATE DOMAIN
要はtypedefが出来る。
CREATE DOMAIN company_code smallint;
これで型の別名を定義して、table定義でこの別名を使うことにより
- 開発中に型の定義を「やっぱこっちで」と切り替えるのが簡単になる
- 本来同じ型の値を使うべきtable間でうっかり定義がずれてしまうことを抑止できる
などなどのメリットが得られる。地味な機能だけど割とうれしい。
Lateral Join
Reuse Calculations in the Same Query with Lateral Joins
くやしくはリンク先を読んでほしいのだけど、要はカラムの値を元にした計算結果を使って更に何らかの値を計算したいような場合に、まあまあ簡便な記法でクエリが書けるということ。 集計とかでうれしい。
RETURNING
MySQLだとlast_insert_idとかを使うしかないが、RETURNINGを使うとINSERTやUPDATEした後に任意の値を返せる。よい。
思ったよりネタがなかった。