Tech News

제목잘 알려지지 않은 PostgreSQL 기능들2021-11-12 16:12
작성자 Level 10

https://hakibenita.com/postgresql-unknown-features 

- Insert on Conflict(Upsert) 시 수정/추가된 Row 수 알기 : xmax

- 특정 컬럼에 권한 부여하기 

- 멀티 패턴 매칭 : SIMILAR TO 또는 ~ 정규식 

- 현재 시퀀스값 증가시키지 않고 알아내기 : pg_sequence_last_value()

- 멀티라인 SQL과 \COPY 같이 사용하려면 : TEMPORARY VIEW 또는 COPY와 \g 이용 

- 자동 생성 키에 값 설정 막기 : 테이블 생성시 GENERATED ALWAYS 지정 (GENERATED BY DEFAULT 대신)

- Pivot 테이블 만들기 : pandas.pivot_table, \crosstabview 또는 tablefunc 확장 사용 

- Dollar Quoting

ㅤ→ $$ 와 $$ 사이의 모든 글자는 문자열로 인식

ㅤ→ $JSON$ / $function$ 처럼 안에 Tag이용 가능

ㅤ→ ::jsonb 를 붙이면 빠르게 jsonb객체 생성

- DB객체에 코멘트 달기 : COMMENT ON TABLE/COLUMN, Dollar Quoting 이용해서 긴 문자열 설명 추가도 가능 

ㅤ→ 작성 : COMMENT ON TABLE sale IS 'Sales made in the system'; 

ㅤ→ 보기 : \d+ sale 

- DB 별 History 별도로 기록하기 

ㅤ→ \set HISTFILE ~/.psql_history- :DBNAME

- 자동완성을 대문자로 하기 : \set COMP_KEYWORD_CASE upper

- 슬립 주기 : pg_sleep(초), pg_sleep_for('4 minutes 14 seconds')

- 서브 쿼리 없이 그룹의 첫/마지막 줄 가져오기 : DISTINCT ON (그룹 컬럼) 

- uuid-ossp 확장없이 UUID 생성하기 : gen_random_uuid()  version 4 UUID를 생성

- 재현 가능한 랜덤 데이터 생성 : setseed() 로 시드를 같게 

- 기존 데이터를 즉시 검증하지 않고 조건 추가하기 : ALTER 할때 NOT VALID 로 조건만 먼저 추가하고, ALTER VALIDATE로 기존 데이터 검증은 따로 실행

- 오라클의 Synonym 같은 기능을 이용하기 : search_path 변경 (Zero Downtime Migration시 유용)

- 겹치는 Range 찾기 : OVERLAPS 연산자 


댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)