メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

PG_CANCEL_BACKEND

クエリをキャンセルします。PG_CANCEL_BACKEND は、CANCEL コマンドと機能的に同じものです。ユーザー自身が現在実行しているクエリをキャンセルできます。スーパーユーザーはどのクエリでもキャンセルできます。

構文

Copy to clipboard
pg_cancel_backend( pid )

引数

pid

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

戻り型

なし

使用に関する注意事項

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

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

Copy to clipboard
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 のクエリをキャンセルします。

Copy to clipboard
select pg_cancel_backend(802);