当我需要重新拥有150 个表,每个表有 40 个表,但在运行 6000 个 ALTER 语句之前显示来自 SELECT 的 6000 行时,这个答案非常适合。
因此,如主题中所述,有什么方法可以抑制 SELECT 输出?
sides=> SELECT format(
sides(> 'ALTER TABLE %I.%I.%I OWNER TO sides_owner;',
sides(> table_catalog,
sides(> table_schema,
sides(> table_name
sides(> )
sides-> FROM information_schema.tables
sides-> WHERE table_schema = 'strans';
format
---------------------------------------------------------------------
ALTER TABLE sides.strans.foo OWNER TO sides_owner;
ALTER TABLE sides.strans.blarg_p2020_02 OWNER TO sides_owner;
ALTER TABLE sides.strans.blarg_p2020_03 OWNER TO sides_owner;
ALTER TABLE sides.strans.blarg_p2020_04 OWNER TO sides_owner;
ALTER TABLE sides.strans.blarg_error_p2019_01 OWNER TO sides_owner;
etc
etc
etc
是的,通过省略 SQL 语句后的分号。也就是说,
\gexec
它本身结束了 SQL 语句。