Wykonaj poniższy select - generuje on gotowy SQL (select) w odpowiednim formacie, używa funkcji string_agg więc musisz mieć co najmniej 9 wersje postgresa (wygeneruje Ci tyle rekordów ile masz tabel w schemacie public), jak go dostosujesz do twoich potrzeb to będziesz miał to o co Ci chodzi
select
'select '||string_agg((select nspname from pg_namespace n where n.oid = r.relnamespace)||'.'||r.relname||'.'||c.attname||' as '||c.attname||'_'||r.relname,', ')||' from '||(select nspname from pg_namespace n where n.oid = r.relnamespace)||'.'||r.relname as kolumna
from pg_class r
join pg_attribute c on r.oid=c.attrelid
join pg_type t on c.atttypid=t.oid
where r.relkind = 'r' and (select nspname from pg_namespace n where n.oid = r.relnamespace)='public' and c.attnum>=0
group by r.relnamespace,r.relname
order by r.relnamespace,r.relname