« 体芸食堂でサッカー観戦をやってた | メイン | ntp.nict.jp が一般公開 »

2006年06月13日

PostgreSQL を使ってみた

諸事情で PostgreSQL を使いました。いつも使っている MySQL からの移植メモということで。

REPLACE tbl_name ( col_1, col_2 ) VALUES ( ?, ? )

REPLACE は PostgreSQL で使用できない。面倒がらずに INSERT と UPDATE を使い分ける。

INSERT tbl_name SET col_1 = ?, col_2 = ?

INSERT で SET を使うことは PostgreSQL では出来ない。これは UPDATE と合わせた形式で便利だったのだけど、素直に VALUES を使う。

・UNSIGNED が使えない
・AUTO_INCREMENT の代わりに SERIAL を使う

というあたりも。

今回は意識しなかったけど、内部的な値の問題で、ブール型 BOOLEAN は使わずに INT か CHAR を使う方が良いというのも。バイト数を考えれば、後者かな。

まとめると、標準化された仕様(SQL99)に従えということですな。ともあれ、良く使われる MySQL と PostgreSQL には、きちっと対応させたいと思う。コードがそのまま使えなくとも、最低限の変更で済むように。

標準化された仕様に従わないと DBI を使ううま味が無いかも。データベースエンジンを変更する機会はそうそう無いんだけれども。今回は、初めて使う PostgreSQL に対応させるために、まずは MySQL で構築したのが始まり。

移植にあたり Web+DB press (Vol.25) の特集を参照しました。データ型の対応表ね。

【関連情報】
・新しい業界標準「SQL99」詳細解説
 http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_0.html
・SQLデータ型一覧
 http://www.nslabs.jp/book2-sql-types.rhtml

2006年06月13日 03:19 | Programming

トラックバック

コメント