(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
댓글 없음:
댓글 쓰기