

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# PG\$1CANCEL\$1BACKEND
<a name="PG_CANCEL_BACKEND"></a>

クエリをキャンセルします。PG\$1CANCEL\$1BACKEND は、[CANCEL](r_CANCEL.md)コマンドと機能的に同じものです。ユーザー自身が現在実行しているクエリをキャンセルできます。スーパーユーザーはどのクエリでもキャンセルできます。

## 構文
<a name="PG_CANCEL_BACKEND-synopsis"></a>

```
pg_cancel_backend( pid )
```

## 引数
<a name="PG_CANCEL_BACKEND-arguments"></a>

 *pid*   
キャンセルするクエリのプロセス ID (PID)。クエリ ID を指定してクエリをキャンセルすることはできません。クエリのプロセス ID を指定する必要があります。`INTEGER` 値は必須です。

## 戻り型
<a name="PG_CANCEL_BACKEND-return-type"></a>

なし

## 使用に関する注意事項
<a name="PG_CANCEL_BACKEND-usage-notes"></a>

複数のセッションのクエリが同じテーブルのロックを保持している場合、[PG\$1TERMINATE\$1BACKEND](PG_TERMINATE_BACKEND.md)関数を使用してセッションの 1 つを終了することができます。これにより、終了したセッションで現在実行中のトランザクションがあれば、そのすべてのロックが強制的に解放され、トランザクションがロールバックされます。PG\$1\$1LOCKS カタログテーブルに対してクエリを実行し、現在保持しているロックを表示します。トランザクションブロック (BEGIN … END) 内にあるためクエリをキャンセルできない場合、PG\$1TERMINATE\$1BACKEND 関数を使用して、クエリを実行中のセッションを終了できます。

## 例
<a name="PG_CANCEL_BACKEND-example"></a>

現在実行されているクエリをキャンセルするには、キャンセルするクエリのプロセス ID を最初に取得します。現在実行されているすべてのクエリのプロセス ID を確認するには、次のコマンドを実行します。

```
SELECT pid, TRIM(starttime) AS start, 
duration, TRIM(user_name) AS user,
SUBSTRING(query,1,40) AS querytxt
FROM stv_recents
WHERE status = 'Running';

+-----+------------------------+----------+--------+-----------------------------+
| pid |       starttime        | duration |  user  |          querytxt           |
+-----+------------------------+----------+--------+-----------------------------+
| 802 | 2013-10-14 09:19:03.55 |      132 | dwuser | select venuename from venue |
| 834 | 2013-10-14 08:33:49.47 |  1250414 | dwuser | select * from listing;      |
| 964 | 2013-10-14 08:30:43.29 |   326179 | dwuser | select sellerid from sales  |
+-----+------------------------+----------+--------+-----------------------------+
```

プロセス ID 802 のクエリをキャンセルするには、次の例を使用します。

```
SELECT PG_CANCEL_BACKEND(802);
```