oid2nameコマンドでoidを取得する
PostgreSQLのoid2name
コマンドを使用してテーブルやデータベースのoidを取得できる。
DBの一覧
DBを指定せずにoid2name
を実行すると、全てのデータベースの一覧が表示される。
$ oid2name -U ユーザ名
All databases:
Oid Database Name Tablespace
-----------------------------------
14042 postgres pg_default
14041 template0 pg_default
1 template1 pg_default
16384 testdb pg_default
16430 todos pg_default
テーブルの一覧
-d
オプションを使用して特定のデータベースのテーブル一覧を取得できる。
デフォルトではoidが表示されないため-x
(詳細表示)オプションを追加して実行する。
$ oid2name -U ユーザ名 -d testdb -x
From database "testdb":
Filenode Table Name Oid Schema Tablespace
-------------------------------------------------
16413 users 16405 public pg_default
...
特定のテーブルのoid
テーブル名がわかっている場合は-t
オプションを使用して直接oidを取得できる。
$ oid2name -U ユーザ名 -d testdb -t users -x
From database "testdb":
Filenode Table Name Oid Schema Tablespace
-------------------------------------------------
16413 users 16405 public pg_default
SQLクエリでoidを取得する
PostgreSQLのシステムカタログを使用して、SQLクエリでテーブルやデータベースのoidを取得できる。
データベースのoidを取得
pg_database
システムカタログを使用して、データベースのoidを取得できる。
SELECT oid, datname FROM pg_database;
oid | datname
-------+----------------
14042 | postgres
16384 | testdb
1 | template1
14041 | template0
16430 | todos
(5 rows)
テーブルのoidを取得
pg_class
システムカタログを使用して、テーブルのoidを取得できる。
SELECT oid, relname FROM pg_class WHERE relname = 'users';
oid | relname
-------+---------
16405 | users
(1 row)
\第一線のプログラマーの行動原理を学べる!/