DISCARD — 세션 상태 버리기

DISCARD — 세션 상태 버리기

DISCARD 문으로 데이터베이스 세션과 연결된 내부 리소스를 해제합니다. 세션 상태를 부분적으로든 완전히든 리셋하고 싶을 때 유용한 명령이에요. 세션을 깨끗한 초기 상태로 되돌리고 싶다면 DISCARD ALL을 쓰면 됩니다.

출처: PostgreSQL 문서

본문

개요 (Synopsis)

DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }

설명 (Description)

DISCARD는 데이터베이스 세션과 연관된 내부 리소스를 해제해요. 세션 상태를 부분적으로 또는 완전히 리셋할 때 유용하죠. 각기 다른 종류의 리소스를 해제하는 여러 하위 명령이 있는데, DISCARD ALL 변형은 나머지를 모두 포함하면서 추가 상태까지 리셋합니다.

매개변수 (Parameters)

  • PLANS — 캐시된 모든 질의 계획을 해제해서, 다음에 연관된 준비된 문( prepared statement)을 쓸 때 다시 계획을 세우도록 강제해요.
  • SEQUENCES — 캐시된 모든 시퀀스 관련 상태를 버려요. 여기에는 currval()/lastval() 정보와, nextval()이 아직 돌려주지 않은 미리 할당된(preallocated) 시퀀스 값이 포함돼요. (미리 할당된 시퀀스 값에 대한 설명은 CREATE SEQUENCE를 참고하세요.)
  • TEMPORARY 또는 TEMP — 현재 세션에서 만든 모든 임시 테이블을 삭제해요.
  • ALL — 현재 세션과 연관된 모든 임시 리소스를 해제하고 세션을 초기 상태로 리셋해요. 현재로선 다음 일련의 문들을 실행한 것과 같은 효과가 있어요:
CLOSE ALL;
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD TEMP;
DISCARD SEQUENCES;

참고 사항 (Notes)

DISCARD ALL 은 트랜잭션 블록 안에서는 실행할 수 없어요.

호환성 (Compatibility)

DISCARD는 PostgreSQL 확장이에요.

더 알아보기 (Learn more)

  • RESET — 런타임 설정 파라미터를 기본값으로 되돌리기
  • DEALLOCATE — 준비된 문 해제
  • CLOSE — 커서 닫기