본문 바로가기
IT/PostgreSQL

[PostgreSQL] - 포스트그레 CTID 를 사용해서 row 중복 제거하는 방법 (Oracle rowid와 차이점)

by 차이나는 개발자 2022. 12. 27.
728x90
반응형

#포스트그레 CTID 사용해서 row 중복 제거하는 방법 (Oracle rowid와 차이점)

 

 

#CTID 란 ?

-CTID는 테이블 내의 특정 row의 물리적 위치를 나타냅니다.

-컬럼타입: tid(typle id)

 

 

#Oracle의 rowid와 차이점

-oracle의 rowid는 해당 row가 delete 되거나 update 되어도 변하지 않습니다

-postgresql의 ctid는 오라클의 rowid와 달리 지속성을 가지고 있지 않으므로 update 시 값이 변합니다.

 

 

#ctid 사용방법

-select 시 ctid를 추가해줍니다.

select ctid, * from member;

 

#결과

 

 

#ctid를 rownum으로 확인하는 방법

-postgresql row_number() 함수를 사용하여 rownum을 생성하여 사용합니다.

select a.*
from (
	select ctid, name, age, row_number() over(order by age asc) as rownum from member
) a
;

 

#결과

 

 

 

728x90
반응형

댓글