使用node-postgres获取函数的返回类型OID

时间:2019-11-21 19:58:44

标签: postgresql node-postgres

使用node-postgres查询Postgres数据库时,成功的查询将返回具有pg.Result属性的oid类型。

查询集合返回函数时,oidnull

从函数中进行选择时,是否可以获取返回类型的oid

1 个答案:

答案 0 :(得分:2)

Result.oid属性与返回类型无关。

在Postgres 12之前,您可以使用CREATE TABLE ... WITH OIDS在表中包括一个自动分配的oid列。

在单行INSERT到表WITH OIDS中的特殊情况下,服务器的CommandComplete response包含新行的oid。对于所有其他INSERToid为零,对于所有其他命令,响应不包含oid

node-postgres source显示Result.oid属性是从此响应派生的。对于SELECT响应,从不分配oid,因此无论您要查询什么,null都将被分配。此值(以及通常用于OID列)的有限用途可能解释了为什么oid属性为undocumented的原因。

返回类型与结果的相关联,而不与结果整体相关联。您可以使用以下方式获取列的OID类型:

result.fields[0].dataTypeId