ALTER ROUTINE

ALTER ROUTINE

ALTER ROUTINE은 루틴(routine)의 정의를 바꾸는 명령이에요. 루틴은 집계 함수, 일반 함수, 프로시저 중 하나일 수 있어요.

출처: PostgreSQL 문서

본문

문법 (Synopsis)

ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    action [ ... ] [ RESTRICT ]
ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    RENAME TO new_name
ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    SET SCHEMA new_schema
ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    [ NO ] DEPENDS ON EXTENSION extension_name

where action is one of:

    IMMUTABLE | STABLE | VOLATILE
    [ NOT ] LEAKPROOF
    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
    PARALLEL { UNSAFE | RESTRICTED | SAFE }
    COST execution_cost
    ROWS result_rows
    SET configuration_parameter { TO | = } { value | DEFAULT }
    SET configuration_parameter FROM CURRENT
    RESET configuration_parameter
    RESET ALL

설명 (Description)

ALTER ROUTINE은 루틴의 정의를 변경해요. 루틴은 집계 함수, 일반 함수, 프로시저 중 하나일 수 있어요. 파라미터 설명, 더 많은 예제, 추가 세부사항은 ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE 아래를 참고하세요.

예제 (Examples)

integer 타입의 루틴 foofoobar로 이름을 바꾸려면:

ALTER ROUTINE foo(integer) RENAME TO foobar;

이 명령은 foo가 집계 함수든 함수든 프로시저든 관계없이 동작해요.

호환성 (Compatibility)

이 문은 SQL 표준의 ALTER ROUTINE 문과 부분적으로 호환돼요. 자세한 내용은 ALTER FUNCTIONALTER PROCEDURE 아래를 참고하세요. 루틴 이름이 집계 함수를 가리키는 것을 허용하는 것은 PostgreSQL 확장 기능이에요.

더 알아보기 (Learn more)

  • ALTER ROUTINE은 집계 함수·함수·프로시저 모두에 동작해요.
  • 실제로는 주로 ALTER AGGREGATE·ALTER FUNCTION·ALTER PROCEDURE의 편의용 래퍼로 쓰여요.
  • 루틴 이름이 집계 함수를 가리키는 것은 PostgreSQL 확장 기능이에요.