

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `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`**  
將函數移至另一個結構描述。

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

**{{name}}**  
要變更之現有函數的名稱 （選擇性符合結構描述資格）。

**{{argmode}}**  
引數的模式：`IN`、`INOUT`、 `OUT`或 `VARIADIC`。如果省略，則預設值為 `IN`。函數僅使用輸入引數進行識別，因此請僅列出 `IN`、 `INOUT`和 `VARIADIC`引數。

**{{argname}}**  
引數的名稱。

**{{argtype}}**  
函數引數的資料類型 (s)。

**{{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 中可用的其他表單。