0

我正在处理 postgresql 表列。在 SQL 或 pl/pgSQL 中很容易,但是在 PL/C 中如何处理列(例如获取列名,获取表的列数,检查表中是否存在名称为 XXX 的列)?

4

1 回答 1

1

你的意思是:

PQnfields
Returns the number of columns (fields) in each row of the query result.

int PQnfields(const PGresult *res);
PQfname
Returns the column name associated with the given column number. Column numbers start at 0. The caller should not free the result directly. It will be freed when the associated PGresult handle is passed to PQclear.

char *PQfname(const PGresult *res,
              int column_number);
NULL is returned if the column number is out of range.

PQfnumber
Returns the column number associated with the given column name.

int PQfnumber(const PGresult *res,
              const char *column_name);
-1 is returned if the given name does not match any column.

The given name is treated like an identifier in an SQL command, that is, it is downcased unless double-quoted. For example, given a query result generated from the SQL command

select 1 as FOO, 2 as "BAR";
we would have the results:

PQfname(res, 0)              foo
PQfname(res, 1)              BAR
PQfnumber(res, "FOO")        0
PQfnumber(res, "foo")        0
PQfnumber(res, "BAR")        -1
PQfnumber(res, "\"BAR\"")    1

取自Postgres 文档

你有什么问题?这些电话非常简单。

于 2012-06-11T04:42:28.887 回答