↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 协议消息 / 后端消息

CommandComplete

CommandComplete 是后端协议消息,表示命令执行完成。

当前查看 PostgreSQL 18.6。

说明

CommandComplete 是后端协议消息,表示命令执行完成。

方向
后端 → 前端
首个线上协议字段
Byte1('C')
字段条目
3
手册中的交互阶段
简单查询;扩展查询;COPY 操作

用法

CommandComplete (B)

消息边界与重复字段

下方完整定义保留重复项、计数与条件字段。表格行号表示文档中的字段定义,并非固定字节偏移量。整数编码与交互流程以同版本协议章节为准。

按手册顺序排列的线上协议字段

位置格式含义
1Byte1('C')将该消息标识为命令完成响应。
2Int32消息内容的长度(以字节为单位),包括其自身。
3字符串命令标签,通常是标识已完成 SQL 命令的一个单词。对于 INSERT,标签为 INSERT oid rows,rows 是插入行数。oid 过去在 rows 为 1 且目标表具有 OID 时表示所插入行的对象 ID;由于 OID 系统列已不再受支持,oid 始终为 0。对于 DELETE,标签为 DELETE rows,rows 是删除行数。对于 UPDATE,标签为 UPDATE rows,rows 是更新行数。对于 MERGE,标签为 MERGE rows,rows 是插入、更新或删除的行数。对于 SELECT 或 CREATE TABLE AS,标签为 SELECT rows,rows 是检索行数。对于 MOVE,标签为 MOVE rows,rows 是游标位置移动的行数。对于 FETCH,标签为 FETCH rows,rows 是从游标检索的行数。对于 COPY,标签为 COPY rows,rows 是复制行数;行数仅在 PostgreSQL 8.2 及以后版本中出现。

手册定义

Byte1('C')

将该消息标识为命令完成响应。

Int32

消息内容的长度(以字节为单位),包括其自身。

字符串

命令标签。通常是一个单词,用来标识已完成的 SQL 命令。

INSERT 命令的标记为 INSERT oid rows,其中 rows 为插入行数。过去,若 rows 为 1 且目标表具有 OID,oid 表示插入行的对象 ID;但现在已不再支持 OID 系统列,因此 oid 始终为 0。

对于DELETE命令,标签是DELETE rows,其中rows表示删除的行数。

对于UPDATE命令,标签是UPDATE rows,其中rows是更新的行数。

对于MERGE命令,标签是MERGE rows,其中rows是插入、更新或删除的行数。

对于SELECT或CREATE TABLE AS命令,标签是SELECT rows,其中rows是检索到的行数。

对于MOVE命令,标签是MOVE rows,其中rows表示游标位置改变的行数。

对于FETCH命令,标签是FETCH rows,其中rows是从游标中检索出的行数。

对于 COPY 命令,标签为 COPY rows,其中 rows 是复制的行数。(注意:行数仅出现在 PostgreSQL 8.2 及更高版本中。)

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。