При копировании данных из файла вы получаете количество строк в psql с помощью «тега команды»:
db=# COPY t FROM '/var/lib/postgres/test.sql';
COPY 10
Мне нужно количество строк и хотелось бы избежать избыточного count()
в таблице.
Есть ли способ получить этот счет из COPY
непосредственно в функции PL / pgSQL?
Насколько я знаю, их нет, но, может быть, я чего-то не хватает?
Для PostgreSQL 9.2. Но любой вариант в любой версии будет представлять интерес.
Не в PG 9.2, но есть в PG 9.3 любезно предоставлено Павлом (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