从COPY命令获取行数

Erw*_*ter 5 postgresql count plpgsql sqlbulkcopy

从文件复制数据时,使用"command tag"获取psql中的行数:

db=# COPY t FROM '/var/lib/postgres/test.sql';
COPY 10
Run Code Online (Sandbox Code Playgroud)

我需要行数,并希望避免count()表上的冗余.

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

对于PostgreSQL 9.2.但任何版本中的任何选项都会引起关注.

Den*_*rdy 9

不在PG 9.2中,但在PG 9.3中有Pavel(E 1.3.1.7)提供:

允许PL/pgSQL访问COPY处理的行数(Pavel Stehule)

该命令是GET DIAGNOSTICS x = ROW_COUNT.

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

  • 正中目标,先生!并向帕维尔致敬! (2认同)