创建队列。
语法
可使用 CREATE QUEUE 定义新队列:
CREATE QUEUE name QUEUE TABLE queue_table_name [ ( { option_name option_value} [, ... ] ) ]
其中 option_name
和对应的 option_value
可以是:
TYPE [normal_queue | exception_queue]
RETRIES [INTEGER]
RETRYDELAY [DOUBLE PRECISION]
RETENTION [DOUBLE PRECISION]
说明
CREATE QUEUE 命令允许数据库超级用户或具有系统定义的 aq_administrator_role 特权的任何用户,在当前数据库中创建新队列。
如果队列名称是 schema 限定的,则在指定的 schema 中创建队列。如果 CREATE QUEUE 命令中不包含 schema,则在当前 schema 中创建队列。只能在队列表所在的 schema 中创建队列。队列名称必须唯一,与同一 schema 中其他任何队列的名称均不相同。
说明
- PolarDB PostgreSQL版(兼容Oracle)包括 CREATE QUEUE SQL 命令的额外语法(Oracle 未提供)。可以将该语法与 DBMS_AQADM 联合使用。
- 可使用 DROP QUEUE 删除队列。
参数
参数 | 说明 |
---|---|
name | 要创建的队列的名称(可能是 schema 限定的)。 |
queue_table_name | 与该队列关联的队列表的名称。 |
option_name option_value | 将与新队列关联的任何选项的名称,以及该选项对应的值。如果对 CREATE QUEUE 的调用包含重复的选项名称,则服务器将返回错误。支持以下值:
|
示例
以下命令创建名为 work_order 的队列,该队列与名为 work_order_table 的队列表关联:
CREATE QUEUE work_order QUEUE TABLE work_order_table (RETRIES 5, RETRYDELAY 2);
服务器将允许尝试 5 次从队列中删除消息,且两次尝试之间强制实施 2 秒重试延迟。