33.9. COPY
命令相关的函数
PostgreSQL中的COPY
命令有用于libpq的对网络连接读出或者写入的选项。这一节描述的函数允许应用通过提供或者消耗已拷贝的数据来充分利用这个功能。
整个处理是应用首先通过PQexec
或者一个等效的函数发出 SQL COPY
命令。对这个命令的响应(如果命令无误)将是一个状态代码是PGRES_COPY_OUT
或 者PGRES_COPY_IN
(取决于指定的拷贝方向)的PGresult
对象。应用然后就应该使用这一节的函数接收或者传送数据行。在数据传输结束之后,另外一个PGresult
对象会被返回以表明传输的成功或者失败。它的状态将是:PGRES_COMMAND_OK
表示成功,PGRES_FATAL_ERROR
表示发生了一些问题。此时我们可以通过PQexec
发出进一步的 SQL 命令(在COPY
操作的处理过程中,不能用同一个连接执行其它 SQL 命令)。
如果一个COPY
命令是通过PQexec
在一个可能包含额外命令的字符串中发出的,那么应用在完成COPY
序列之后必须继续用PQgetResult
取得结果。只有在PQgetResult
返回NULL
时,我们才能确信PQexec
的命令字符串已经处理完毕, 并且可以安全地发出更多命令。
这一节的函数应该只在从PQexec
或PQgetResult
获得了PGRES_COPY_OUT
或PGRES_COPY_IN
结果状态的后执行。
一个承载了这些状态值之一的PGresult
对象携带了正在开始的