使用 node-postgres
查询 Postgres 数据库时,成功的查询将返回具有 oid
属性的pg.Result
类型。
查询集合返回函数时,oid
null
。
有没有办法在从函数中进行选择时获取返回类型的oid
?
Result.oid
属性与返回类型无关。
在 Postgres 12 之前,您可以使用 CREATE TABLE ... WITH OIDS
在表中包含自动分配的oid
列。
在单行INSERT
到表WITH OIDS
的特殊情况下,服务器的CommandComplete
响应包含新行的oid
。对于所有其他INSERT
,oid
为零,对于所有其他命令,响应不包含oid
。
node-postgres
源显示 Result.oid
属性派生自此响应。对于SELECT
响应,永远不会分配oid
,因此无论您要查询什么,都将null
。此值(以及一般的 OID 列(的用处有限,这可能解释了为什么 oid
属性未被记录。
返回类型与结果的列相关联,而不是与整个结果相关联。您可以使用例如以下命令获取列的 OID 类型:
result.fields[0].dataTypeId