

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

`ALTER FUNCTION` cambia la definición de una función.

## Sintaxis admitida
<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
```

## Descripción
<a name="alter-function-description"></a>

`ALTER FUNCTION` cambia la definición de una función existente. 

 Debe ser propietario de la función para utilizar `ALTER FUNCTION`. Para modificar el esquema de una función, también debe tener el privilegio `CREATE` en el nuevo esquema. Para modificar el propietario, debe ser miembro del nuevo rol de propietario y ese rol debe tener el privilegio `CREATE` en el esquema de la función.

**`RENAME TO`**  
Cambia el nombre de la función.

**`OWNER TO`**  
Cambia el propietario de la función al usuario especificado.

**`SET SCHEMA`**  
Mueve la función a otro esquema.

## Parameters
<a name="alter-function-parameters"></a>

**{{name}}**  
El nombre (opcionalmente calificado por el esquema) de una función existente que se va a modificar.

**{{argmode}}**  
El modo de un argumento: `IN`, `OUT`, `INOUT` o `VARIADIC`. Si se omite, el valor predeterminado es `IN`. La función usa solo los argumentos de entrada para la identificación, por lo que solo muestra los argumentos `IN`, `INOUT` y `VARIADIC`.

**{{argname}}**  
El nombre de un argumento.

**{{argtype}}**  
Los tipos de datos de los argumentos de la función.

**{{new\_name}}**  
El nuevo nombre de la función.

**{{new\_owner}}**  
El nuevo propietario de la función.

**{{new\_schema}}**  
El nuevo esquema de la función.

## Consideraciones
<a name="alter-function-considerations"></a>

Para cambiar otros atributos distintos de los mostrados anteriormente, utilice `CREATE OR REPLACE FUNCTION`. Para obtener más información, consulte [`CREATE FUNCTION`](create-function-syntax-support.md).

Para agregar, cambiar o eliminar un comentario en una función, utilice el comando `COMMENT ON FUNCTION` independiente.

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

Cambie el nombre de la función `add` (que requiere dos argumentos `integer`) a `sum_two`:

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

Cambie el propietario de la función `add` por el usuario actual:

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

Mueva la función `add` al esquema `utils`:

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

## Compatibilidad
<a name="alter-function-compatibility"></a>

Aurora DSQL admite los formularios `RENAME TO`, `OWNER TO` y `SET SCHEMA` de la instrucción `ALTER FUNCTION` de PostgreSQL. Los demás formularios disponibles en PostgreSQL no son compatibles. 