

# `ALTER FUNCTION`
<a name="alter-function-syntax-support"></a>

`ALTER FUNCTION`은 함수의 정의를 변경합니다.

## 지원되는 구문
<a name="alter-function-supported-syntax"></a>

```
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    RENAME TO new_name
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    SET SCHEMA new_schema
```

## 설명
<a name="alter-function-description"></a>

`ALTER FUNCTION`은 기존 함수의 정의를 변경합니다.

 `ALTER FUNCTION`을 사용하려면 함수를 소유해야 합니다. 함수의 스키마를 변경하려면 새 스키마에 대한 `CREATE` 권한도 있어야 합니다. 소유자를 변경하려면 새 소유 역할의 구성원이어야 하며 해당 역할에 함수의 스키마에 대한 `CREATE` 권한이 있어야 합니다.

**`RENAME TO`**  
함수의 이름을 변경합니다.

**`OWNER TO`**  
함수의 소유자를 지정된 사용자로 변경합니다.

**`SET SCHEMA`**  
함수를 다른 스키마로 이동합니다.

## 파라미터
<a name="alter-function-parameters"></a>

**{{이름}}**  
변경할 기존 함수 이름(선택적으로 스키마 한정)입니다.

**{{argmode}}**  
인수의 모드: `IN`, `OUT`, `INOUT` 또는 `VARIADIC`. 생략 시 기본값은 `IN`입니다. 함수는 식별을 위해 입력 인수만 사용하므로 `IN`, `INOUT` 및 `VARIADIC` 인수만 나열합니다.

**{{argname}}**  
인수의 이름입니다.

**{{argtype}}**  
함수 인수의 데이터 형식입니다.

**{{new\_name}}**  
함수의 새 이름입니다.

**{{new\_owner}}**  
함수의 새 소유자입니다.

**{{new\_schema}}**  
함수의 새 스키마입니다.

## 고려 사항
<a name="alter-function-considerations"></a>

위에 나열된 속성 이외의 다른 속성을 변경하려면 `CREATE OR REPLACE FUNCTION`을 사용합니다. 자세한 내용은 섹션을 참조하세요[`CREATE FUNCTION`](create-function-syntax-support.md)

함수에 대한 설명을 추가, 변경 또는 제거하려면 별도의 `COMMENT ON FUNCTION` 명령을 사용합니다.

## 예제
<a name="alter-function-examples"></a>

함수 `add`(두 `integer` 인수 사용)의 이름을 `sum_two`로 바꿉니다.

```
ALTER FUNCTION add(integer, integer) RENAME TO sum_two;
```

`add` 함수의 소유자를 현재 사용자로 변경합니다.

```
ALTER FUNCTION add(integer, integer) OWNER TO CURRENT_USER;
```

`add` 함수를 `utils` 스키마로 이동합니다.

```
ALTER FUNCTION add(integer, integer) SET SCHEMA utils;
```

## 호환성
<a name="alter-function-compatibility"></a>

Aurora DSQL은 PostgreSQL `ALTER FUNCTION` 문의 `RENAME TO`, `OWNER TO` 및 `SET SCHEMA` 형식을 지원합니다. PostgreSQL에서 사용할 수 있는 다른 양식은 지원되지 않습니다.