Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
PG_CANCEL_BACKEND
Membatalkan kueri. PG_CANCEL_BACKEND secara fungsional setara dengan perintah. CANCEL (BATALKAN) Anda dapat membatalkan kueri yang saat ini dijalankan oleh pengguna Anda. Superusers dapat membatalkan kueri apa pun.
Sintaks
pg_cancel_backend( pid )
Argumen
- pid
-
ID proses (PID) dari kueri yang akan dibatalkan. Anda tidak dapat membatalkan kueri dengan menentukan ID kueri; Anda harus menentukan ID proses kueri. Membutuhkan
INTEGER
nilai.
Jenis pengembalian
Tidak ada
Catatan penggunaan
Jika kueri dalam beberapa sesi menahan kunci pada tabel yang sama, Anda dapat menggunakan PG_TERMINATE_BACKEND fungsi untuk mengakhiri salah satu sesi, yang memaksa setiap transaksi yang sedang berjalan di sesi yang dihentikan untuk melepaskan semua kunci dan memutar kembali transaksi. Kueri tabel katalog PG__LOCKS untuk melihat kunci yang saat ini dipegang. Jika Anda tidak dapat membatalkan kueri karena berada di blok transaksi (BEGIN... END), Anda dapat mengakhiri sesi di mana kueri berjalan dengan menggunakan fungsi PG_TERMINATE_BACKEND.
Contoh
Untuk membatalkan kueri yang sedang berjalan, pertama-tama ambil ID proses untuk kueri yang ingin Anda batalkan. Untuk menentukan proses IDs untuk semua query yang sedang berjalan, jalankan perintah berikut.
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 |
+-----+------------------------+----------+--------+-----------------------------+
Untuk membatalkan kueri dengan ID proses 802, gunakan contoh berikut.
SELECT PG_CANCEL_BACKEND(802);