2017년 10월 13일 금요일

PostgreSQL OID 확인 방법

종종 oid 를 확인하고 싶을 때가 있다.
(oid 는 tuple 를 구분하는 unique value 이다.)

postgres=# create table t1 (c1 char(20));
CREATE TABLE
postgres=# insert into t1 values ('aaa');
INSERT 0 1
postgres=# insert into t1 values ('bbb');
INSERT 0 1
postgres=# select * from t1;
          c1
----------------------
 aaa
 bbb
(2 rows)

postgres=# select oid,* from t1;
ERROR:  column "oid" does not exist
LINE 1: select oid, * from t1;
               ^
postgres=#

어라? 에러가 뜨네?
분명히 본거 같은데....

postgres=# select oid,relname from pg_class where relname='t1';
  oid  | relname
-------+---------
 24646 | t1
(1 row)

잘 나오는데.... 왜 t1 은 안 나올까....

구글링을 해봤다.
table 을 만들 때, 옵션을 줘야 된단다.

postgres=# create table t2 (c1 char(20)) with oids;
CREATE TABLE
postgres=# insert into t2 values ('aaa');
INSERT 24652 1
postgres=# insert into t2 values ('bbb');
INSERT 24653 1
postgres=# select * from t2;
          c1
----------------------
 aaa
 bbb
(2 rows)

postgres=# select oid,* from t2;
  oid  |          c1
-------+----------------------
 24652 | aaa
 24653 | bbb
(2 rows)

postgres=#

※ oid 는 명시적으로 표기하지 않으면 출력되지 않는다.
그래서 oid 와 모든 column 을 출력하고 싶으면 oid,* 라고 입력해야 한다.



출처
http://www.sqlines.com/postgresql/oid

댓글 없음:

댓글 쓰기

PostgreSQL 모니터링(monitoring) 방법

DB 모니터링 항목(상시점검항목)에 대한 가이드 (check list, critical 항목들) DB 부하 상태 정보들을 획득할 수 있는 항목 및 방법에 대한 가이드 Statistics Collector PostgreSQL statistic...