1

Temat: Z tabeli do wielu plików

Mam tabelę:

AA|BB|CC|USER1
DE|CC|DE|USER1
DE|FR|KG|USER2
...
DE|NN|KK|USERXX

Poszukuje sposobu na eksport takiej długiej tabeli w wiele plików o nazwie USER1, USER2... w których będą małe części tabeli zawierające dane danego USER. tzn w pliku USER1 będzie tabelka:
AA|BB|CC|USER1
DE|CC|DE|USER1
i nic więcej.

Format eksportowanego pliku najlepszy byłby excel ale csv też byłby ok. w sumie cokolwiek było by ok.

Macie jakieś pomysły?

2

Odp: Z tabeli do wielu plików

zobacz na poniższy skrypt
create table export_data_t (pole1 text, pole2 text, username name);
insert into export_data_t values ('aa1','bb1','user1'),('aa2','bb2','user2');
create or replace function export_user () returns int as
$body$
declare
r record;
i int;
begin
  i := 0;
  for r in select distinct username from export_data_t loop
      raise notice 'Export user: %',r.username;
      execute 'copy (select * from export_data_t where username='''||r.username||''') to ''C:/Program Files/PostgreSQL/9.3/data/export/export_'||r.username||'.csv'' with csv;';
      i := i + 1;
  end loop;
  return i;
end;
$body$
language plpgsql;
--wywolanie
select export_user();