postgres WITHOUT OIDS とは?

postgresでのデータベースの実装を任され、CREATE TABLE 文を作成していく際にわからない部分が出てきたのでメモ。

[オプション] WITHOUT OIDS;

このオプションを指定せずにテーブルを作成すると、OIDという列が自動的に挿入される。
このOIDはpostgresの内部でいろんなテーブルのPRIMARY KEYとして利用される。
そんなに長いデータ型ではないようなので大規模なシステムには不向き。

つまり大規模なシステムのデータベースを実装する場合は、このオプションを利用しいらん列が挿入されるのを防ぎましょうということ。
PRIMARY KEYは別に設定して実装する方が良さそう。