Lætitia AVROT:INSERT 0 1 实际上告诉你什么?

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

在PostgreSQL中,插入命令的返回状态格式为“INSERT [oid] [rows]”。其中“0”表示对象ID已被移除,“1”表示处理的行数。即使在更新操作中,Postgres仍返回插入标签,可能导致混淆。

🎯

关键要点

  • PostgreSQL中的插入命令返回状态格式为'INSERT [oid] [rows]'。
  • 其中'0'表示对象ID已被移除,'1'表示处理的行数。
  • 自PostgreSQL 12版本起,用户表不再分配内部对象ID,因此总是显示为0。
  • 命令标签的构建过程涉及多个源代码文件,主要在src/backend/tcop/cmdtag.c中。
  • BuildQueryCompletionString函数负责组装最终的命令标签字符串。
  • 在插入操作中,即使发生更新,Postgres仍返回插入标签,可能导致混淆。
➡️

继续阅读