Il create table as
la funzionalità in PostgreSQL potrebbe ora essere la risposta che l'OP stava cercando.
https://www.postgresql.org/docs/9.5/static /sql-createtableas.html
create table my_table_copy as
select * from my_table
Questo creerà una tabella identica con i dati.
Aggiunta di with no data
copierà lo schema senza i dati.
create table my_table_copy as
select * from my_table
with no data
Questo creerà la tabella con tutti i dati, ma senza indici e trigger ecc.
create table my_table_copy (like my_table including all)
La sintassi di creazione della tabella includerà tutti i trigger, gli indici, i vincoli, ecc. Ma non includerà i dati.