【PostgreSQL】OID(Object Identifier:オブジェクト識別子)とは
OID(Object Identifier:オブジェクト識別子)とは
いまさら感は否めないですが、OIDについて調べたことのメモです。
OIDとは、オブジェクト識別子といいPostgreSQLの内部で管理する値です。
特徴をまとめると次の通り
・ データベース、テーブル、ロール、関数、操作、データ型などに割り振られる
※ テーブル作成時の『WITH OIDS』はPostgreSQL12で廃止
・ 0は使わない(0は無効な値の扱い)。符号なし4バイト(最大値:4,294,967,295)の値をとる
・ OIDは一周して同じ値をとる場合があるため、一意であると仮定してはならない
・ 主キーを持たないテーブル、重複行があるテーブルなどに有効
OIDを取得するSQL
各OIDを取得するSQLです。
--データベースのoidを取得する
select datid,datname from pg_stat_database;
--テーブルのoidを取得する
select relid,relname from pg_stat_all_tables;
--ユーザー(ロール)のoidを取得する
select oid,* from pg_roles;