Экспорт таблицы PostgreSQL в CSV с заголовками, только если количество строк в таблице больше 0

Я экспортирую таблицу в CSV с заголовком, используя команду COPY в postgreSQL. Даже если результат таблицы равен 0, создается файл CSV только с заголовком. Мне нужен файл CSV с заголовком, только если количество строк больше 0.


person Karthik M L    schedule 02.07.2018    source источник


Ответы (1)


вы можете просто использовать plpgsql:

db=# do $$
begin
if (select count(*) from t) > 0 then
copy t to '/tmp/t' with (format csv, header);
end if;
end;
$$
;
DO
db=# \! cat /tmp/t
c
2
db=# truncate table t;
TRUNCATE TABLE
db=# \! rm /tmp/t
db=# do $$
begin
if (select count(*) from t) > 0 then
copy t to '/tmp/t' with (format csv, header);
end if;
end;
$$
;
DO
db=# \! cat /tmp/t
cat: /tmp/t: No such file or directory
person Vao Tsun    schedule 02.07.2018
comment
Я вызываю копию из java с помощью JDBC, можно ли копировать без нескольких вызовов БД ?? - person Karthik M L; 02.07.2018