VastbaseG100

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

Menu

NOTIFY

功能描述

NOTIFY命令用于生成一个通知。

NOTIFY命令发送一个通知事件以及一个可选的“载荷”字符串给每个正在监听的客户端应用,这些应用之前都在当前数据库中为指定的频道名执行过LISTEN channel。通知对所有用户都可见。

由一个通知事件传递给客户端的信息包括通知频道名称、发出通知的会话的服务器进程PID以及载荷字符串,如果载荷字符串没有被指定则它为空字符串。

要发送通知,也可以使用函数PG_NOTIFY

注意事项

  • 如果NOTIFY在一个事务内执行,在事务被提交之前,该通知事件都不会被递送。因此,通常只有在短事务中才使用LISTEN / NOTIFY命令。

  • 一个已经执行了NOTIFY的事务不能为两阶段提交做准备。

  • 支持版本:

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

语法格式

NOTIFY channel [ , payload ]

参数说明

  • channel

    要对其发信号的通知频道的名称。

  • payload

    要通过通知进行沟通的“载荷”字符串。

示例

前置条件

使用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.

3、发送通知并指定载荷字符串。

NOTIFY virtual, 'This is the payload';

返回结果如下:

Asynchronous notification "virtual" with payload "This is the payload" received from server process with PID 18446744072028346112.

兼容性

SQL标准中没有NOTIFY语句。