`ALTER TABLESPACE` — 테이블스페이스 정의 변경

ALTER TABLESPACE — 테이블스페이스 정의 변경

기존 테이블스페이스의 이름이나 소유자, 옵션을 바꾸고 싶을 때 쓰는 명령이 ALTER TABLESPACE예요. 테이블스페이스 자체를 만들거나 지우는 것이 아니라 그 정의를 수정해요.

출처: PostgreSQL 문서

본문

ALTER TABLESPACE는 테이블스페이스의 정의를 변경하는 데 사용돼요.

Synopsis (개요)

ALTER TABLESPACE name RENAME TO new_name
ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )

Description (설명)

ALTER TABLESPACE는 테이블스페이스의 정의를 변경하는 데 쓸 수 있어요.

테이블스페이스의 정의를 변경하려면 그 테이블스페이스의 소유자여야 해요. 소유자를 변경하려면 새 소유자 역할로 SET ROLE할 수 있어야 해요. (슈퍼유저는 이런 권한을 자동으로 가져요.)

Parameters (파라미터)

  • name — 기존 테이블스페이스의 이름.
  • new_name — 테이블스페이스의 새 이름. 새 이름은 pg_로 시작할 수 없어요. 그런 이름은 시스템 테이블스페이스에 예약되어 있기 때문이에요.
  • new_owner — 테이블스페이스의 새 소유자.
  • tablespace_option — 설정하거나 초기화할 테이블스페이스 파라미터. 현재 사용 가능한 파라미터는 seq_page_cost, random_page_cost, effective_io_concurrency, maintenance_io_concurrency뿐이에요. 특정 테이블스페이스에 이 값을 설정하면, 플래너가 그 테이블스페이스의 테이블에서 페이지를 읽는 비용과 발행되는 동시 I/O 수에 대해 보통 추정하는 값(같은 이름의 구성 파라미터로 정해진 값, 즉 seq_page_cost, random_page_cost, effective_io_concurrency, maintenance_io_concurrency 참고)을 덮어써요. 어떤 테이블스페이스가 나머지 I/O 하위 시스템보다 빠르거나 느린 디스크에 있을 때 유용할 수 있어요.

Examples (예시)

테이블스페이스 index_space의 이름을 fast_raid로 바꾸는 예시예요.

ALTER TABLESPACE index_space RENAME TO fast_raid;

테이블스페이스 index_space의 소유자를 변경하는 예시예요.

ALTER TABLESPACE index_space OWNER TO mary;

Compatibility (호환성)

SQL 표준에는 ALTER TABLESPACE 문이 없어요.

더 알아보기 (Learn more)

  • 테이블스페이스를 만드는 CREATE TABLESPACE와 삭제하는 DROP TABLESPACE 명령을 함께 확인해요.