VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

LISTEN

功能描述

LISTEN命令用于监听一个通知。

LISTEN会在名为channel的通知频道上将当前会话注册为一个监听者。如果当前会话已经被注册为这个通知频道的一个监听者,则不会执行任何操作。

只要NOTIFY命令被调用(不管是在这个会话还是在另一个连接到同一数据库的会话中),所有当前正在该通知频道上监听的会话都会被通知,并且每一个会话将会接着通知连接到它的客户端应用。

可以使用UNLISTEN命令取消对给定通知通道的会话注册。当会话结束时,它的监听注册会被自动清除。

客户端发出LISTEN命令之后,会通过驱动程序去询问服务器端是否有需要接受的通知,一个客户端检测通知的方式取决于它使用的Vastbase应用编程接口,如JDBC接口。因此,使用此功能需要驱动程序相关的接口来适配。

LISTEN / NOTIFY功能,可以用来传递字符串信息,也可以用来做表之间的数据同步。LISTEN / NOTIFY的使用也可以参考NOTIFY

注意事项

  • LISTEN在事务提交时生效。

  • 已执行LISTEN的事务无法为两阶段提交做准备。

  • 支持版本:

    • V2.2 Build 10(Patch No.10)及以上补丁版本。
    • V2.2 Build 13及以上版本。

语法格式

LISTEN channel_name

参数说明

channel_name

一个通知频道的名称。

示例

前置条件

使用vsql工具连接至客户端。

vsql -d vastbase -p 5432 -r

示例步骤: 在vsql中配置并执行LISTEN / NOTIFY命令:

1、注册监听频道。

LISTEN virtual;

返回结果:

LISTEN

2、发送一个通知事件。

NOTIFY virtual;

返回结果:

NOTIFY
Asynchronous notification "virtual" received from server process with PID 18446744072028346112.

兼容性

在SQL标准中没有LISTEN语句。