# UNLISTEN

UNLISTEN — 停止監聽通知

### 語法

```
UNLISTEN { channel | * }
```

### 說明

UNLISTEN 用於移除現有已註冊的 NOTIFY 事件。UNLISTEN 取消目前 PostgreSQL 連線的任何現有註冊，名稱為 channel 的通知通道上的監聽器。特殊符號 \* 為取消目前連線已註冊的所有監聽器。

[NOTIFY](https://docs.postgresql.tw/13/reference/sql-commands/notify) 包含了對 LISTEN 和 NOTIFY 使用上更廣泛的討論。

### 參數

*`channel`*

通知通道的名稱（任何標識字）。

`*`

清除此連線目前已註冊的所有監聽。

### 注意

你可以取消你不要監聽的東西；不會出現警告或錯誤。

在每個連線結束時，UNLISTEN \* 會自動執行。

已執行 UNLISTEN 的事務無法為兩階段提交做準備。

### 範例

進行註冊：

```
LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.
```

一旦執行了 UNLISTEN，將忽略之後的 NOTIFY 訊息：

```
UNLISTEN virtual;
NOTIFY virtual;
-- no NOTIFY event is received
```

### 相容性

SQL 標準中沒有 UNLISTEN 指令。

### 參閱

[LISTEN](https://docs.postgresql.tw/13/reference/sql-commands/listen), [NOTIFY](https://docs.postgresql.tw/13/reference/sql-commands/notify)
