{"kind": "protocol", "major": "18", "item": {"slug": "commandcomplete-b", "name": "CommandComplete", "name_zh": "", "category": "\u540e\u7aef\u6d88\u606f", "summary": "CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002", "aliases": ["CommandComplete", "Byte1('C')"], "content_hash": "60dc70d4935ca1152cf406df48fefda201d48c671e872e5867a70c5e2f4a1199", "versions": {"10": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002\u5f53 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\uff0coid \u662f\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u5426\u5219\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/10/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/10/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/10/protocol-flow.html#id-1.10.5.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/10/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/10/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "stable", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "https://pg.center/docs/10/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS", "path": "protocol-message-formats.html", "label": "PostgreSQL 10 English manual", "sha256": "b730a205dfc348a67edbc1e9687f2c2df69005fe30c062ef76e37b474538e4f8", "language": "en", "original_url": "/docs/10/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0c\u5219 oid \u4e3a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u5426\u5219 oid \u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/10/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/10/datatype-json.html", "method": "same-major semantic node", "sha256": "165b454cf9ff6825d21a4252844d43764fca541eafd0649170257d230e23425b", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[18]/pre[23]/em[4]/code[0]"]}, {"url": "/docs/10/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "fb3f5382c61e7fcc0eaa29589ac1811e59b1cc7a8bd23c1ebe5fc8f17c9819b2", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]"]}], "language": "zh", "original_text": {"/versions/10/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/10/facts/0/label": "Direction", "/versions/10/facts/0/value": "Backend \u2192 frontend", "/versions/10/facts/1/label": "First wire field", "/versions/10/facts/2/label": "Field entries", "/versions/10/facts/3/label": "Documented flow contexts", "/versions/10/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/10/tables/0/title": "Wire fields in documented order", "/versions/10/related/0/label": "Protocol flow and exchange examples", "/versions/10/related/1/label": "Protocol overview", "/versions/10/related/2/label": "Simple Query", "/versions/10/related/3/label": "Extended Query", "/versions/10/related/4/label": "COPY Operations", "/versions/10/sections/0/title": "Framing and repetition", "/versions/10/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/10/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/10/tables/0/rows/2/c1": "String", "/versions/10/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/10/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/10/tables/0/columns/0/label": "Position", "/versions/10/tables/0/columns/1/label": "Format", "/versions/10/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "5f934a45c11b14f6396ee9cd88a57a13742609c713852e084ab4f80ec88017d9"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "e97fa10b35f77a6bf140a4c5f646c82a37c1875a4f13240b8fdac298a5532989", "manual_language": "zh"}, "11": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002\u5f53 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\uff0coid \u662f\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u5426\u5219\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/11/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/11/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/11/protocol-flow.html#id-1.10.5.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/11/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/11/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "stable", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "https://pg.center/docs/11/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS", "path": "protocol-message-formats.html", "label": "PostgreSQL 11 English manual", "sha256": "a6087693de687f5a6582bfa6529356ecb8a089e2d56694482352a55eb6ccfdf1", "language": "en", "original_url": "/docs/11/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0c\u5219 oid \u4e3a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u5426\u5219 oid \u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/11/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/11/datatype-json.html", "method": "same-major semantic node", "sha256": "e3239ad05fc4bad945529e631d9e5da84363b31e6e589461b97d69386cc43e7f", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[18]/pre[23]/em[4]/code[0]"]}, {"url": "/docs/11/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "9726c6197a98d51a4e85474eefe4eebef23c1e01c1accd23e4633aa0e78288ea", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]"]}], "language": "zh", "original_text": {"/versions/11/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/11/facts/0/label": "Direction", "/versions/11/facts/0/value": "Backend \u2192 frontend", "/versions/11/facts/1/label": "First wire field", "/versions/11/facts/2/label": "Field entries", "/versions/11/facts/3/label": "Documented flow contexts", "/versions/11/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/11/tables/0/title": "Wire fields in documented order", "/versions/11/related/0/label": "Protocol flow and exchange examples", "/versions/11/related/1/label": "Protocol overview", "/versions/11/related/2/label": "Simple Query", "/versions/11/related/3/label": "Extended Query", "/versions/11/related/4/label": "COPY Operations", "/versions/11/sections/0/title": "Framing and repetition", "/versions/11/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/11/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/11/tables/0/rows/2/c1": "String", "/versions/11/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/11/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/11/tables/0/columns/0/label": "Position", "/versions/11/tables/0/columns/1/label": "Format", "/versions/11/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "1f4cd3a8f0d93ac56ca5f7e48258d79f4187594a461e234d94fb324aac18b3d0"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid is the object ID of the inserted row if rows is 1 and the target table has OIDs; otherwise oid is 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "e97fa10b35f77a6bf140a4c5f646c82a37c1875a4f13240b8fdac298a5532989", "manual_language": "zh"}, "12": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/12/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/12/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/12/protocol-flow.html#id-1.10.5.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/12/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/12/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "stable", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "https://pg.center/docs/12/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS", "path": "protocol-message-formats.html", "label": "PostgreSQL 12 English manual", "sha256": "00f6cafbcaad89c7e7982faed10a2896b7188de151ac9137633021207f7c2b70", "language": "en", "original_url": "/docs/12/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/12/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/12/datatype-json.html", "method": "same-major semantic node", "sha256": "5a46150e3fb4bd47dd2a421735d2e7672c4368f9209446b850d6adbf92d51b7e", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/12/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "1d8b90803d96546f1f4c7412e486a669852503476ec078069948005061c1122c", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]"]}], "language": "zh", "original_text": {"/versions/12/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/12/facts/0/label": "Direction", "/versions/12/facts/0/value": "Backend \u2192 frontend", "/versions/12/facts/1/label": "First wire field", "/versions/12/facts/2/label": "Field entries", "/versions/12/facts/3/label": "Documented flow contexts", "/versions/12/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/12/tables/0/title": "Wire fields in documented order", "/versions/12/related/0/label": "Protocol flow and exchange examples", "/versions/12/related/1/label": "Protocol overview", "/versions/12/related/2/label": "Simple Query", "/versions/12/related/3/label": "Extended Query", "/versions/12/related/4/label": "COPY Operations", "/versions/12/sections/0/title": "Framing and repetition", "/versions/12/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/12/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/12/tables/0/rows/2/c1": "String", "/versions/12/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/12/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/12/tables/0/columns/0/label": "Position", "/versions/12/tables/0/columns/1/label": "Format", "/versions/12/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "dbf7e539f5184a9d42cbaa3e5a4c8c7476a1b2aefbf9d3f0494777d3330b53ca"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "a3693453a3063fd1f19c04f2ed87343c75d38c2e0a808251446a01918f8ea71d", "manual_language": "zh"}, "13": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/13/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/13/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/13/protocol-flow.html#id-1.10.5.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/13/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/13/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "stable", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "https://pg.center/docs/13/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS", "path": "protocol-message-formats.html", "label": "PostgreSQL 13 English manual", "sha256": "86bc62b343a9bd881a6832cced7d81285a9924985ea598ee2b207bbb4ba9666e", "language": "en", "original_url": "/docs/13/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/13/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/13/datatype-json.html", "method": "same-major semantic node", "sha256": "4f40d591dd48f8b5cb58a4f0af9b824d2b0b6dee2132a6a010128e4f9b64184b", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/13/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "90801323e211e99834ac2c19f534fccad08d74098fbce82899c1e1970d871906", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]"]}], "language": "zh", "original_text": {"/versions/13/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/13/facts/0/label": "Direction", "/versions/13/facts/0/value": "Backend \u2192 frontend", "/versions/13/facts/1/label": "First wire field", "/versions/13/facts/2/label": "Field entries", "/versions/13/facts/3/label": "Documented flow contexts", "/versions/13/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/13/tables/0/title": "Wire fields in documented order", "/versions/13/related/0/label": "Protocol flow and exchange examples", "/versions/13/related/1/label": "Protocol overview", "/versions/13/related/2/label": "Simple Query", "/versions/13/related/3/label": "Extended Query", "/versions/13/related/4/label": "COPY Operations", "/versions/13/sections/0/title": "Framing and repetition", "/versions/13/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/13/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/13/tables/0/rows/2/c1": "String", "/versions/13/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/13/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/13/tables/0/columns/0/label": "Position", "/versions/13/tables/0/columns/1/label": "Format", "/versions/13/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "54e55858ca6e905a398bc878efd4f03528ac1022eaf7355013b0814c2d6b2ea8"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "a3693453a3063fd1f19c04f2ed87343c75d38c2e0a808251446a01918f8ea71d", "manual_language": "zh"}, "14": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/14/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/14/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/14/protocol-flow.html#id-1.10.5.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/14/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/14/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "https://pg.center/docs/14/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS", "path": "protocol-message-formats.html", "label": "PostgreSQL 14 English manual", "sha256": "250fd6a2529964948260a546f72931e259885bb222b62c3bdbf5ab402b72987b", "language": "en", "original_url": "/docs/14/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/14/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/14/datatype-json.html", "method": "same-major semantic node", "sha256": "6caaf22252a97833322c667923644122c2e880284c9f623b4ccbad4929b6ce66", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/14/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "a125a259c8ea8299be50b5d5d8241c513d8b38df4c6f16cf53b7949a63e2f8aa", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]"]}], "language": "zh", "original_text": {"/versions/14/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/14/facts/0/label": "Direction", "/versions/14/facts/0/value": "Backend \u2192 frontend", "/versions/14/facts/1/label": "First wire field", "/versions/14/facts/2/label": "Field entries", "/versions/14/facts/3/label": "Documented flow contexts", "/versions/14/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/14/tables/0/title": "Wire fields in documented order", "/versions/14/related/0/label": "Protocol flow and exchange examples", "/versions/14/related/1/label": "Protocol overview", "/versions/14/related/2/label": "Simple Query", "/versions/14/related/3/label": "Extended Query", "/versions/14/related/4/label": "COPY Operations", "/versions/14/sections/0/title": "Framing and repetition", "/versions/14/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/14/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/14/tables/0/rows/2/c1": "String", "/versions/14/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/14/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/14/tables/0/columns/0/label": "Position", "/versions/14/tables/0/columns/1/label": "Format", "/versions/14/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "4006d478eba1663aea575480bc02accee9132208226f5977cb65fb2791beb2e2"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "a3693453a3063fd1f19c04f2ed87343c75d38c2e0a808251446a01918f8ea71d", "manual_language": "zh"}, "15": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/15/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/15/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/15/protocol-flow.html#id-1.10.6.7.4", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/15/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/15/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "https://pg.center/docs/15/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 15 English manual", "sha256": "8c5c191eef74cd3249dabab5d6714b0f516b88c4658da4d6cce6c003bc45d919", "language": "en", "original_url": "/docs/15/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/15/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/15/datatype-json.html", "method": "same-major semantic node", "sha256": "1de5ac3fcff666e4a6ac070ff5320df19ce2a518ff29c894afc9071d51b938ff", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/15/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "bbc89cd7e243ed7051f6e82b92f54fe8a97cbf4a673c2c4b39d9e8c8b7c422d3", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[35]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/15/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/15/facts/0/label": "Direction", "/versions/15/facts/0/value": "Backend \u2192 frontend", "/versions/15/facts/1/label": "First wire field", "/versions/15/facts/2/label": "Field entries", "/versions/15/facts/3/label": "Documented flow contexts", "/versions/15/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/15/tables/0/title": "Wire fields in documented order", "/versions/15/related/0/label": "Protocol flow and exchange examples", "/versions/15/related/1/label": "Protocol overview", "/versions/15/related/2/label": "Simple Query", "/versions/15/related/3/label": "Extended Query", "/versions/15/related/4/label": "COPY Operations", "/versions/15/sections/0/title": "Framing and repetition", "/versions/15/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/15/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/15/tables/0/rows/2/c1": "String", "/versions/15/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/15/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/15/tables/0/columns/0/label": "Position", "/versions/15/tables/0/columns/1/label": "Format", "/versions/15/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "5fe86ba9be488983c92e40c801afe6970b672dc381f33aec03a7afc0f51a65f3"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "16": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/16/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/16/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/16/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/16/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/16/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "https://pg.center/docs/16/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 16 English manual", "sha256": "c15646b30727f469cdac3bd411e50dc9b14ee85982a9c9c8a2b3e16449b39a46", "language": "en", "original_url": "/docs/16/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/16/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/16/datatype-json.html", "method": "same-major semantic node", "sha256": "4d3ca6065016169a03abc9b3a57654fda5765ebb94074fa4eb578485f6807205", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/16/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "638e90eeb4ff3d56cd0c9c95e1203af6bb87aa147ec72623c9dd5eb4b9605ec3", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/16/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/16/facts/0/label": "Direction", "/versions/16/facts/0/value": "Backend \u2192 frontend", "/versions/16/facts/1/label": "First wire field", "/versions/16/facts/2/label": "Field entries", "/versions/16/facts/3/label": "Documented flow contexts", "/versions/16/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/16/tables/0/title": "Wire fields in documented order", "/versions/16/related/0/label": "Protocol flow and exchange examples", "/versions/16/related/1/label": "Protocol overview", "/versions/16/related/2/label": "Simple Query", "/versions/16/related/3/label": "Extended Query", "/versions/16/related/4/label": "COPY Operations", "/versions/16/sections/0/title": "Framing and repetition", "/versions/16/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/16/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/16/tables/0/rows/2/c1": "String", "/versions/16/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/16/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/16/tables/0/columns/0/label": "Position", "/versions/16/tables/0/columns/1/label": "Format", "/versions/16/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "ef270f8730262b7e9096792a40d6afa92ec832231611fa9a468b4856f291df27"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "17": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/17/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/17/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/17/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/17/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/17/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "https://pg.center/docs/17/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 17 English manual", "sha256": "3c0e7b8a1a8f7ec5026226eab83d6704b7c5199ec9ba1aaaf91ea517609eed4e", "language": "en", "original_url": "/docs/17/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/17/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/17/datatype-json.html", "method": "same-major semantic node", "sha256": "8d2627b39aa9ad8449221de824f0c89af32197e8db7972fbc03b43dfcd0e9a93", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/17/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "d6412ab936b8b40cbe8abcad969c38c282e7039b7b2c6805eb126a28008f973d", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/17/facts/0/label": "Direction", "/versions/17/facts/0/value": "Backend \u2192 frontend", "/versions/17/facts/1/label": "First wire field", "/versions/17/facts/2/label": "Field entries", "/versions/17/facts/3/label": "Documented flow contexts", "/versions/17/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/17/tables/0/title": "Wire fields in documented order", "/versions/17/related/0/label": "Protocol flow and exchange examples", "/versions/17/related/1/label": "Protocol overview", "/versions/17/related/2/label": "Simple Query", "/versions/17/related/3/label": "Extended Query", "/versions/17/related/4/label": "COPY Operations", "/versions/17/sections/0/title": "Framing and repetition", "/versions/17/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/17/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/17/tables/0/rows/2/c1": "String", "/versions/17/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/17/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/17/tables/0/columns/0/label": "Position", "/versions/17/tables/0/columns/1/label": "Format", "/versions/17/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "84aa7bfa6883ecad69e63b8fa3a1ef25febb1d86d69829adcf45aacaf4ffb26b"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "18": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/18/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/18/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 18 English manual", "sha256": "53f37652ac2c089e30ada87d8aee7bdd0f26695b03f275302e526a807d2a1f23", "language": "en", "original_url": "/docs/18/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/18/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/datatype-json.html", "method": "same-major semantic node", "sha256": "b9e8f98a0b5f2a4ec7b5197d02ab40c0ac0635a678c32728aaadd43cb4cd3766", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/18/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "add610bc3053cbc2f8d57b8a89e7e9d17dca8906d66221e9268c1dd1b390d0b5", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/18/facts/0/label": "Direction", "/versions/18/facts/0/value": "Backend \u2192 frontend", "/versions/18/facts/1/label": "First wire field", "/versions/18/facts/2/label": "Field entries", "/versions/18/facts/3/label": "Documented flow contexts", "/versions/18/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/18/tables/0/title": "Wire fields in documented order", "/versions/18/related/0/label": "Protocol flow and exchange examples", "/versions/18/related/1/label": "Protocol overview", "/versions/18/related/2/label": "Simple Query", "/versions/18/related/3/label": "Extended Query", "/versions/18/related/4/label": "COPY Operations", "/versions/18/sections/0/title": "Framing and repetition", "/versions/18/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/18/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/18/tables/0/rows/2/c1": "String", "/versions/18/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/18/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/18/tables/0/columns/0/label": "Position", "/versions/18/tables/0/columns/1/label": "Format", "/versions/18/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "783ca7d94ba94950c72a3da6fb2921ee6cfcbf34d73cffdbf654b4aa7bd40b8c"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "19": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/19/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/19/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/19/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/19/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/19/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "sources": [{"url": "https://pg.center/docs/19/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 19 English manual", "sha256": "90ffd4417d4975d088424b23a513f1d79ac914225ad7e239a12f44d0dd2248e4", "language": "en", "original_url": "/docs/19/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/19/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/19/datatype-json.html", "method": "same-major semantic node", "sha256": "3e9557f5a65838e08890f25b0cc62147ef278263efb1c2462b7906308771ae60", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/19/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "c1bf02758e5b347662df055d3c8807b753fab16fc7238ed640efe95863588bff", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/19/facts/0/label": "Direction", "/versions/19/facts/0/value": "Backend \u2192 frontend", "/versions/19/facts/1/label": "First wire field", "/versions/19/facts/2/label": "Field entries", "/versions/19/facts/3/label": "Documented flow contexts", "/versions/19/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/19/tables/0/title": "Wire fields in documented order", "/versions/19/related/0/label": "Protocol flow and exchange examples", "/versions/19/related/1/label": "Protocol overview", "/versions/19/related/2/label": "Simple Query", "/versions/19/related/3/label": "Extended Query", "/versions/19/related/4/label": "COPY Operations", "/versions/19/sections/0/title": "Framing and repetition", "/versions/19/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/19/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/19/tables/0/rows/2/c1": "String", "/versions/19/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/19/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/19/tables/0/columns/0/label": "Position", "/versions/19/tables/0/columns/1/label": "Format", "/versions/19/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "526bb3e02d687350964fc4224eabdfb5836964639edbe9209991d9408aad8c92"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "20": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/devel/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/devel/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/devel/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/devel/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/devel/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, "sources": [{"url": "https://pg.center/docs/devel/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 20 English manual", "sha256": "4e786b7a3a7f6dbe6547ece35c3281e7f1a33816b0613d2cdc3beec827362d4e", "language": "en", "original_url": "/docs/devel/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/devel/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/devel/datatype-json.html", "method": "same-major semantic node", "sha256": "0bfc34c3ea3eb808f83865871c3fdad1265f64037c9a9aab3fecc96f1d1632d1", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/devel/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "cacb5413fe2995ee79c58230881c08df2077aa918b5f243895b62e065ee7448e", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/summary": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/category": "Backend messages", "/versions/20/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/20/facts/0/label": "Direction", "/versions/20/facts/0/value": "Backend \u2192 frontend", "/versions/20/facts/1/label": "First wire field", "/versions/20/facts/2/label": "Field entries", "/versions/20/facts/3/label": "Documented flow contexts", "/versions/20/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/20/tables/0/title": "Wire fields in documented order", "/versions/20/related/0/label": "Protocol flow and exchange examples", "/versions/20/related/1/label": "Protocol overview", "/versions/20/related/2/label": "Simple Query", "/versions/20/related/3/label": "Extended Query", "/versions/20/related/4/label": "COPY Operations", "/versions/20/sections/0/title": "Framing and repetition", "/versions/20/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/20/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/20/tables/0/rows/2/c1": "String", "/versions/20/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/20/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/20/tables/0/columns/0/label": "Position", "/versions/20/tables/0/columns/1/label": "Format", "/versions/20/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "6568112e90ff73b247a1d6ef02b439df5cceeeff5f005a22297e987fdeeac691"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}}}, "snapshot": {"facts": [{"label": "\u65b9\u5411", "value": "\u540e\u7aef \u2192 \u524d\u7aef"}, {"label": "\u9996\u4e2a\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "value": "Byte1('C')"}, {"label": "\u5b57\u6bb5\u6761\u76ee", "value": "3"}, {"label": "\u624b\u518c\u4e2d\u7684\u4ea4\u4e92\u9636\u6bb5", "value": "\u7b80\u5355\u67e5\u8be2\uff1b\u6269\u5c55\u67e5\u8be2\uff1bCOPY \u64cd\u4f5c"}], "fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "tables": [{"key": "fields", "rows": [{"c0": "1", "c1": "Byte1('C')", "c2": "\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002"}, {"c0": "2", "c1": "Int32", "c2": "\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002"}, {"c0": "3", "c1": "\u5b57\u7b26\u4e32", "c2": "\u547d\u4ee4\u6807\u7b7e\uff0c\u901a\u5e38\u662f\u6807\u8bc6\u5df2\u5b8c\u6210 SQL \u547d\u4ee4\u7684\u4e00\u4e2a\u5355\u8bcd\u3002\u5bf9\u4e8e INSERT\uff0c\u6807\u7b7e\u4e3a INSERT oid rows\uff0crows \u662f\u63d2\u5165\u884c\u6570\u3002oid \u8fc7\u53bb\u5728 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID \u65f6\u8868\u793a\u6240\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u7531\u4e8e OID \u7cfb\u7edf\u5217\u5df2\u4e0d\u518d\u53d7\u652f\u6301\uff0coid \u59cb\u7ec8\u4e3a 0\u3002\u5bf9\u4e8e DELETE\uff0c\u6807\u7b7e\u4e3a DELETE rows\uff0crows \u662f\u5220\u9664\u884c\u6570\u3002\u5bf9\u4e8e UPDATE\uff0c\u6807\u7b7e\u4e3a UPDATE rows\uff0crows \u662f\u66f4\u65b0\u884c\u6570\u3002\u5bf9\u4e8e MERGE\uff0c\u6807\u7b7e\u4e3a MERGE rows\uff0crows \u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002\u5bf9\u4e8e SELECT \u6216 CREATE TABLE AS\uff0c\u6807\u7b7e\u4e3a SELECT rows\uff0crows \u662f\u68c0\u7d22\u884c\u6570\u3002\u5bf9\u4e8e MOVE\uff0c\u6807\u7b7e\u4e3a MOVE rows\uff0crows \u662f\u6e38\u6807\u4f4d\u7f6e\u79fb\u52a8\u7684\u884c\u6570\u3002\u5bf9\u4e8e FETCH\uff0c\u6807\u7b7e\u4e3a FETCH rows\uff0crows \u662f\u4ece\u6e38\u6807\u68c0\u7d22\u7684\u884c\u6570\u3002\u5bf9\u4e8e COPY\uff0c\u6807\u7b7e\u4e3a COPY rows\uff0crows \u662f\u590d\u5236\u884c\u6570\uff1b\u884c\u6570\u4ec5\u5728 PostgreSQL 8.2 \u53ca\u4ee5\u540e\u7248\u672c\u4e2d\u51fa\u73b0\u3002"}], "title": "\u6309\u624b\u518c\u987a\u5e8f\u6392\u5217\u7684\u7ebf\u4e0a\u534f\u8bae\u5b57\u6bb5", "columns": [{"key": "c0", "label": "\u4f4d\u7f6e"}, {"key": "c1", "label": "\u683c\u5f0f"}, {"key": "c2", "label": "\u542b\u4e49"}]}], "related": [{"url": "/docs/18/protocol-flow.html", "label": "\u534f\u8bae\u6d41\u7a0b\u4e0e\u4ea4\u4e92\u793a\u4f8b"}, {"url": "/docs/18/protocol-overview.html", "label": "\u534f\u8bae\u6982\u8ff0"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-FLOW-SIMPLE-QUERY", "label": "\u7b80\u5355\u67e5\u8be2"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY", "label": "\u6269\u5c55\u67e5\u8be2"}, {"url": "/docs/18/protocol-flow.html#PROTOCOL-COPY", "label": "COPY \u64cd\u4f5c"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE", "path": "protocol-message-formats.html", "label": "PostgreSQL 18 English manual", "sha256": "53f37652ac2c089e30ada87d8aee7bdd0f26695b03f275302e526a807d2a1f23", "language": "en", "original_url": "/docs/18/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-COMMANDCOMPLETE"}], "sections": [{"title": "\u6d88\u606f\u8fb9\u754c\u4e0e\u91cd\u590d\u5b57\u6bb5", "paragraphs": ["\u4e0b\u65b9\u5b8c\u6574\u5b9a\u4e49\u4fdd\u7559\u91cd\u590d\u9879\u3001\u8ba1\u6570\u4e0e\u6761\u4ef6\u5b57\u6bb5\u3002\u8868\u683c\u884c\u53f7\u8868\u793a\u6587\u6863\u4e2d\u7684\u5b57\u6bb5\u5b9a\u4e49\uff0c\u5e76\u975e\u56fa\u5b9a\u5b57\u8282\u504f\u79fb\u91cf\u3002\u6574\u6570\u7f16\u7801\u4e0e\u4ea4\u4e92\u6d41\u7a0b\u4ee5\u540c\u7248\u672c\u534f\u8bae\u7ae0\u8282\u4e3a\u51c6\u3002"]}], "direction": "B", "signature": "CommandComplete (B)", "description": ["CommandComplete \u662f\u540e\u7aef\u534f\u8bae\u6d88\u606f\uff0c\u8868\u793a\u547d\u4ee4\u6267\u884c\u5b8c\u6210\u3002"], "manual_html": "<dl><dd>\n<div class=\"variablelist\">\n<dl class=\"variablelist\">\n<dt><span class=\"term\">Byte1('C')</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u5c06\u8be5\u6d88\u606f\u6807\u8bc6\u4e3a\u547d\u4ee4\u5b8c\u6210\u54cd\u5e94\u3002</p>\n</p>\n</dd>\n<dt><span class=\"term\">Int32</span></dt>\n<dd>\n<p lang=\"zh\">\n<p>\u6d88\u606f\u5185\u5bb9\u7684\u957f\u5ea6\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\uff0c\u5305\u62ec\u5176\u81ea\u8eab\u3002</p>\n</p>\n</dd>\n<dt lang=\"zh\">\u5b57\u7b26\u4e32</dt>\n<dd>\n<p lang=\"zh\">\u547d\u4ee4\u6807\u7b7e\u3002\u901a\u5e38\u662f\u4e00\u4e2a\u5355\u8bcd\uff0c\u7528\u6765\u6807\u8bc6\u5df2\u5b8c\u6210\u7684 SQL \u547d\u4ee4\u3002</p>\n<p lang=\"zh\">INSERT \u547d\u4ee4\u7684\u6807\u8bb0\u4e3a INSERT oid rows\uff0c\u5176\u4e2d rows \u4e3a\u63d2\u5165\u884c\u6570\u3002\u8fc7\u53bb\uff0c\u82e5 rows \u4e3a 1 \u4e14\u76ee\u6807\u8868\u5177\u6709 OID\uff0coid \u8868\u793a\u63d2\u5165\u884c\u7684\u5bf9\u8c61 ID\uff1b\u4f46\u73b0\u5728\u5df2\u4e0d\u518d\u652f\u6301 OID \u7cfb\u7edf\u5217\uff0c\u56e0\u6b64 oid \u59cb\u7ec8\u4e3a 0\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">DELETE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">DELETE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">UPDATE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">UPDATE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u66f4\u65b0\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MERGE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MERGE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u63d2\u5165\u3001\u66f4\u65b0\u6216\u5220\u9664\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">SELECT</code>\u6216<code class=\"command\">CREATE TABLE AS</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">SELECT <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u68c0\u7d22\u5230\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">MOVE</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">MOVE <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u8868\u793a\u6e38\u6807\u4f4d\u7f6e\u6539\u53d8\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e<code class=\"command\">FETCH</code>\u547d\u4ee4\uff0c\u6807\u7b7e\u662f<code class=\"literal\">FETCH <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d<em class=\"replaceable\"><code>rows</code></em>\u662f\u4ece\u6e38\u6807\u4e2d\u68c0\u7d22\u51fa\u7684\u884c\u6570\u3002</p>\n<p lang=\"zh\">\u5bf9\u4e8e <code class=\"command\">COPY</code> \u547d\u4ee4\uff0c\u6807\u7b7e\u4e3a <code class=\"literal\">COPY <em class=\"replaceable\"><code>rows</code></em></code>\uff0c\u5176\u4e2d <em class=\"replaceable\"><code>rows</code></em> \u662f\u590d\u5236\u7684\u884c\u6570\u3002\uff08\u6ce8\u610f\uff1a\u884c\u6570\u4ec5\u51fa\u73b0\u5728 <span class=\"productname\">PostgreSQL</span> 8.2 \u53ca\u66f4\u9ad8\u7248\u672c\u4e2d\u3002\uff09</p>\n</dd>\n</dl>\n</div>\n</dd></dl>", "manual_path": "/docs/18/protocol-message-formats.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/datatype-json.html", "method": "same-major semantic node", "sha256": "b9e8f98a0b5f2a4ec7b5197d02ab40c0ac0635a678c32728aaadd43cb4cd3766", "language": "zh", "matched_nodes": ["#DATATYPE-JSON/div[19]/pre[27]/em[4]/code[0]"]}, {"url": "/docs/18/protocol-message-formats.html", "method": "same-major semantic node", "sha256": "add610bc3053cbc2f8d57b8a89e7e9d17dca8906d66221e9268c1dd1b390d0b5", "language": "zh", "matched_nodes": ["#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[1]/div[0]/dl[0]/dd[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[1]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[0]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[2]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[3]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[4]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[5]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[6]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[7]", "#PROTOCOL-MESSAGE-FORMATS/div[2]/dl[0]/dd[33]/div[0]/dl[0]/dd[5]/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "CommandComplete is a backend protocol message. Identifies the message as a command-completed response.", "/versions/18/facts/0/label": "Direction", "/versions/18/facts/0/value": "Backend \u2192 frontend", "/versions/18/facts/1/label": "First wire field", "/versions/18/facts/2/label": "Field entries", "/versions/18/facts/3/label": "Documented flow contexts", "/versions/18/facts/3/value": "Simple Query; Extended Query; COPY Operations", "/versions/18/tables/0/title": "Wire fields in documented order", "/versions/18/related/0/label": "Protocol flow and exchange examples", "/versions/18/related/1/label": "Protocol overview", "/versions/18/related/2/label": "Simple Query", "/versions/18/related/3/label": "Extended Query", "/versions/18/related/4/label": "COPY Operations", "/versions/18/sections/0/title": "Framing and repetition", "/versions/18/tables/0/rows/0/c2": "Identifies the message as a command-completed response.", "/versions/18/tables/0/rows/1/c2": "Length of message contents in bytes, including self.", "/versions/18/tables/0/rows/2/c1": "String", "/versions/18/tables/0/rows/2/c2": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)", "/versions/18/sections/0/paragraphs/0": "The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.", "/versions/18/tables/0/columns/0/label": "Position", "/versions/18/tables/0/columns/1/label": "Format", "/versions/18/tables/0/columns/2/label": "Meaning"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "783ca7d94ba94950c72a3da6fb2921ee6cfcbf34d73cffdbf654b4aa7bd40b8c"}, "comparison_data": {"fields": [{"format": "Byte1('C')", "description": "Identifies the message as a command-completed response."}, {"format": "Int32", "description": "Length of message contents in bytes, including self."}, {"format": "String", "description": "The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)"}], "direction": "B"}, "comparison_hash": "019b4a212cb1c5ea4fd6978a8a4e5292dd1fa76fe5434ed7f0bd4f0e354af19f", "manual_language": "zh"}, "comparison": {"left": "14", "right": "15", "status": "changed", "diff": "--- PostgreSQL 14\n+++ PostgreSQL 15\n@@ -10,7 +10,7 @@\n       \"format\": \"Int32\"\n     },\n     {\n-      \"description\": \"The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)\",\n+      \"description\": \"The command tag. This is usually a single word that identifies which SQL command was completed. For an INSERT command, the tag is INSERT oid rows , where rows is the number of rows inserted. oid used to be the object ID of the inserted row if rows was 1 and the target table had OIDs, but OIDs system columns are not supported anymore; therefore oid is always 0. For a DELETE command, the tag is DELETE rows where rows is the number of rows deleted. For an UPDATE command, the tag is UPDATE rows where rows is the number of rows updated. For a MERGE command, the tag is MERGE rows where rows is the number of rows inserted, updated, or deleted. For a SELECT or CREATE TABLE AS command, the tag is SELECT rows where rows is the number of rows retrieved. For a MOVE command, the tag is MOVE rows where rows is the number of rows the cursor's position has been changed by. For a FETCH command, the tag is FETCH rows where rows is the number of rows that have been retrieved from the cursor. For a COPY command, the tag is COPY rows where rows is the number of rows copied. (Note: the row count appears only in PostgreSQL 8.2 and later.)\",\n       \"format\": \"String\"\n     }\n   ]"}}