从文件复制数据时,您可以使用“命令标记”获取 psql 中的行数:
db=# COPY t FROM '/var/lib/postgres/test.sql';
COPY 10
我需要行数,并希望避免count()
表上出现多余的内容。
有没有办法COPY
直接从 PL/pgSQL 函数中获得这个计数?
据我所知,没有,但也许我错过了什么?
对于 PostgreSQL 9.2。但是任何版本中的任何选项都会引起人们的兴趣。
从文件复制数据时,您可以使用“命令标记”获取 psql 中的行数:
db=# COPY t FROM '/var/lib/postgres/test.sql';
COPY 10
我需要行数,并希望避免count()
表上出现多余的内容。
有没有办法COPY
直接从 PL/pgSQL 函数中获得这个计数?
据我所知,没有,但也许我错过了什么?
对于 PostgreSQL 9.2。但是任何版本中的任何选项都会引起人们的兴趣。
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