5

从文件复制数据时,您可以使用“命令标记”获取 psql 中的行数:

db=# COPY t FROM '/var/lib/postgres/test.sql';
COPY 10

我需要行数,并希望避免count()表上出现多余的内容。

有没有办法COPY直接从 PL/pgSQL 函数中获得这个计数?
据我所知,没有,但也许我错过了什么?

对于 PostgreSQL 9.2。但是任何版本中的任何选项都会引起人们的兴趣。

4

1 回答 1

10

Not in PG 9.2, but there is in PG 9.3 courtesy of Pavel (E 1.3.1.7):

Allow PL/pgSQL to access the number of rows processed by COPY (Pavel Stehule)

The command is GET DIAGNOSTICS x = ROW_COUNT.

http://www.postgresql.org/docs/devel/static/release-9-3.html

于 2013-05-17T14:11:51.217 回答