脚本执行打印每个" DO"从我的脚本

时间:2015-01-13 08:32:20

标签: postgresql plpgsql psql

对于迁移,我自动构建了包含匿名块的脚本,以便每个实体更新并保留结果的日志表。

DO $$
DECLARE productId varchar;
BEGIN
  productId := getProductId('9783980493017');
  update product set ...;
  ...
EXCEPTION
  WHEN OTHERS THEN
  insert into mig_messages(createddate,identifier,message)
  values(now(), '9783980493017', SQLERRM);
END $$;

到目前为止,此工作正常。但是当我用psql运行这些脚本时,每个DO都会在提示符上打印出来。这听起来有点傻,但是有很多脚本中有很多产品更新块(大约5百万或更多)。如何在不将其完全重定向到/ dev / null或将psql切换为静默的情况下抑制此输出?最后可能会有一些我想看到的输出(错误,警告等)。

1 个答案:

答案 0 :(得分:1)

我会在这行前面添加脚本:

SET client_min_messages=WARNING

或者在环境中使用该设置启动psql(我在bash中使用此设置)。

env PGOPTIONS='-c client_min_messages=WARNING' psql ...

这样您仍然可以获得严重性为WARNING或更高的消息 相关: