CREATE OR REPLACE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$; \o /dev/null SELECT exec('drop table if exists largedata_'||g.i||'; create unlogged table largedata_'||g.i||'(data bytea, id serial primary key);') FROM generate_series(0, 64) g(i); \o