

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# PG\$1TERMINATE\$1BACKEND
<a name="PG_TERMINATE_BACKEND"></a>

终止会话。您可终止您的用户拥有的会话。超级用户可终止任何会话。

## 语法
<a name="PG_TERMINATE_BACKEND-synopsis"></a>

```
pg_terminate_backend( pid )
```

## 参数
<a name="PG_TERMINATE_BACKEND-arguments"></a>

*pid*  
要终止的会话的进程 ID。需要 `INTEGER` 值。

## 返回类型
<a name="PG_TERMINATE_BACKEND-return-type"></a>

无

## 使用说明
<a name="PG_TERMINATE_BACKEND-usage-notes"></a>

 如果您即将达到并行连接的限制，请使用 PG\$1TERMINATE\$1BACKEND 终止空闲会话并释放连接。有关更多信息，请参阅 [Amazon Redshift 限制](https://docs.amazonaws.cn/redshift/latest/mgmt/amazon-redshift-limits.html)。

如果多个会话中的查询锁定到了同一个表，您可以使用 PG\$1TERMINATE\$1BACKEND 终止其中一个会话，这将强制已终止会话中所有当前运行的事务释放锁定并回滚事务。查询 PG\$1LOCKS 目录表以查看当前持有的锁。

如果某个查询不在事务块 (BEGIN … END) 中，您可使用 [CANCEL](r_CANCEL.md) 命令或 [PG\$1CANCEL\$1BACKEND](PG_CANCEL_BACKEND.md) 函数取消该查询。

## 示例
<a name="PG_TERMINATE_BACKEND-example"></a>

要查询 SVV\$1TRANSACTIONS 表以查看对当前事务生效的所有锁，请使用以下示例。

```
SELECT * FROM svv_transactions;

+-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+
| txn_owner | txn_db |  xid  | pid  |      txn_start      |    lock_mode    | lockable_object_type | relation | granted |
+-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+
| rsuser    | dev    | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation             |    51940 | true    |
| rsuser    | dev    | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation             |    52000 | true    |
| rsuser    | dev    | 96178 | 8585 | 2017-04-12 20:13:07 | AccessShareLock | relation             |   108623 | true    |
| rsuser    | dev    | 96178 | 8585 | 2017-04-12 20:13:07 | ExclusiveLock   | transactionid        |          | true    |
+-----------+--------+-------+------+---------------------+-----------------+----------------------+----------+---------+
```

要终止持有锁的会话，请使用以下示例。

```
SELECT PG_TERMINATE_BACKEND(8585); 
```