ALTER EXTENSION

ALTER EXTENSION — 확장 모듈 정의 바꾸기

요약

ALTER EXTENSION 이름 UPDATE [ TO 새버전 ]
ALTER EXTENSION 이름 SET SCHEMA 새스키마
ALTER EXTENSION 이름 ADD 소속개체
ALTER EXTENSION 이름 DROP 소속개체

소속개체 자리에는:

  ACCESS METHOD 개체이름 |
  AGGREGATE 집계함수이름 ( 집계함수식별구문 ) |
  CAST (기존자료형 AS 바뀔자료형) |
  COLLATION 개체이름 |
  CONVERSION 개체이름 |
  DOMAIN 개체이름 |
  EVENT TRIGGER 개체이름 |
  FOREIGN DATA WRAPPER 개체이름 |
  FOREIGN TABLE 개체이름 |
  FUNCTION 함수이름 [ ( [ [ 인자모드 ] [ 인자이름 ] 인자자료형 [, ...] ] ) ] |
  MATERIALIZED VIEW 개체이름 |
  OPERATOR 연산자이름 (왼쪽자료형, 오른쪽자료형) |
  OPERATOR CLASS 개체이름 USING 색인방법 |
  OPERATOR FAMILY 개체이름 USING 색인방법 |
  [ PROCEDURAL ] LANGUAGE 개체이름 |
  PROCEDURE 프로시져이름 [ ( [ [ 인자모드 ] [ 인자이름 ] 인자자료형 [, ...] ] ) ] |
  ROUTINE 루틴이름 [ ( [ [ 인자모드 ] [ 인자이름 ] 인자자료형 [, ...] ] ) ] |
  SCHEMA 개체이름 |
  SEQUENCE 개체이름 |
  SERVER 개체이름 |
  TABLE 개체이름 |
  TEXT SEARCH CONFIGURATION 개체이름 |
  TEXT SEARCH DICTIONARY 개체이름 |
  TEXT SEARCH PARSER 개체이름 |
  TEXT SEARCH TEMPLATE 개체이름 |
  TRANSFORM FOR 자료형이름 LANGUAGE 언어이름 |
  TYPE 개체이름 |
  VIEW 개체이름

집계함수식별구문 자리에는:

* |
[ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ] |
[ [ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ] ] ORDER BY [ 인자모드 ] [ 인자이름 ] 인자자료형 [ , ... ]

설명

ALTER EXTENSION 명령은 확장 모듈 정의를 바꾼다. 사용 구문은 아래와 같이 여러 가지다:

UPDATE

해당 확장 모듈을 새 버전으로 바꾼다. 해당 확장 모듈에서 이 작업 - 기존 버전에서 새 버전으로 바뀔 때 내부적으로 진행되어야 할 일련의 작업 - 에 대한 스크립트를 제공해야 한다.

SET SCHEMA

해당 확장 모듈 소속 개체들을 다른 스키마로 옮긴다. 이 작업이 정상적으로 수행되려면 해당 확장 모듈이 이동 가능한 것이여야 한다. (소속 개체들의 스키마 바꾸기에 필요한 여러 접근 권한들이 있어야 한다 - 옮긴이)

ADD 소속개체

해당 확장 모듈에 지정한 한 개체를 그 모듈의 구성 요소로 지정한다. 이 작업은 확장 모듈 업데이트 스크립트에 유용하게 사용된다. 이렇게 구성 요소가 된 개체는 단독으로 삭제될 없으며, 확장 모듈이 삭제 될 때 같이 삭제 된다.

DROP 소속개체

해당 확장 모듈에 지정한 한 개체를 그 모듈에서 뺀다. 이 작업은 확장 모듈 업데이트 스크립트에 유용하게 사용된다. 이 작업으로 해당 개체가 삭제되는 것이 아니라, 단지 확장 모듈과의 의존 관계가 끊어지는 것 뿐이다.

이 부분에 대한 추가 정보는 37.17절에서 다룬다.

ALTER EXTENSION 명령은 해당 확장 모듈의 소유주가 사용한다. 또한 ADD/DROP 작업은 그 작업 대상 개체들의 소유주여야 한다.

매개 변수

이름

작업 대상 확장 모듈 이름.

새버전

사용할 해당 확장 모듈의 버전. 이 값은 식별값이거나 문자열이다. 이 값을 지정하지 않고, ALTER EXTENSION UPDATE 명령을 사용하면, 해당 확장 모듈 제어 파일에 지정한 버전을 사용한다.

새스키마

바뀔 새 스키마 이름.

개체이름
집계함수이름
함수이름
연산자이름
procedure_name
routine_name

해당 확장 모듈에 포함하거나 뺄 테이블, 집계 함수, 도메인, 외부 테이블, 함수, 연산자, 연산자 클래스, 연산자 가족, 프로시져, 루틴, 시퀀스, 글 찾기 개체, 자료형, 뷰의 이름. 이 이름에는 스키마 이름도 포함 할 수 있다.

기존자료형

형변환자 식별을 위한 그 변환자의 기존 자료형 이름.

바뀔자료형

형변환자 식별을 위한 그 변환자의 바뀔 자료형 이름.

인자모드

함수, 프로시시져나 집계 함수의 인자 모드: IN, OUT, INOUT, 또는 VARIADIC. 생략하면, 기본값은 IN. ALTER EXTENSION 명령에서는 OUT 인자에 대해서는 무시하고, 함수 식별을 위해서 입력 인자만 확인한다. 그래서 해당 함수를 지정하기 위해서는 IN, INOUT, VARIADIC 인자만 지정하면 된다.

인자이름

함수, 프로시져나 집계 함수의 인자 이름. ALTER EXTENSION 명령에서는 지정한 해당 함수를 찾는데 이 이름은 사용하지 않고, 단지, 인자 모드와 인자 자료형만 사용한다.

인자자료형

함수, 프로시져나 집계 함수의 인자 자료형.

왼쪽자료형
오른쪽자료형

연산자(스키마 이름 포함)를 지정하기 위한 자료형. 단항 연산자인 경우는 사용하지 않는 자료형에 NONE을 지정한다.

PROCEDURAL

안 써도 되는 단어.

자료형이름

transform 개체 식별용 자료형 이름.

언어이름

transform 개체 식별용 내장 언어 이름.

예제

hstore 확장 모듈을 2.0 버전으로 업데이트:

ALTER EXTENSION hstore UPDATE TO '2.0';

hstore 확장 모듈의 스키마를 utils로 바꾸기:

ALTER EXTENSION hstore SET SCHEMA utils;

hstore 확장 모듈에 기존 함수 추가:

ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);

호환성

ALTER EXTENSION is a PostgreSQL extension.

관련 항목

CREATE EXTENSION, DROP EXTENSION