4

这是一件小事,但对我来说有点烦人,似乎有一种方法可以配置它。假设我有以下内容:

CREATE OR REPLACE FUNCTION baz()
  RETURNS void AS
$BODY$
DECLARE
BEGIN
  RAISE NOTICE 'I also did some work!';
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

CREATE OR REPLACE FUNCTION bar()
  RETURNS void AS
$BODY$
DECLARE
BEGIN
  RAISE NOTICE 'I did a bunch of work and want you to know about it';
  PERFORM baz();
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

CREATE OR REPLACE FUNCTION foo()
  RETURNS void AS
$BODY$
DECLARE
BEGIN
  PERFORM bar();
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

select foo();

我收到以下输出消息:

NOTICE:  I did a bunch of work and want you to know about it
CONTEXT:  SQL statement "SELECT bar()"
PL/pgSQL function "foo" line 4 at PERFORM
NOTICE:  I also did some work!
CONTEXT:  SQL statement "SELECT baz()"
PL/pgSQL function "bar" line 5 at PERFORM
SQL statement "SELECT bar()"
PL/pgSQL function "foo" line 4 at PERFORM
Total query runtime: 31 ms.
1 row retrieved.

我想要(通常)只是看到类似的东西:

NOTICE:  I did a bunch of work and want you to know about it
NOTICE:  I also did some work!
Total query runtime: 31 ms.
1 row retrieved.

有没有办法控制/改变这个?同样,这是一件小事,几乎不值得在 Stackoverflow 上提问,但如果你有很多事情要做,它就会开始在输出中引入很多“噪音”,这让我已经超负荷的大脑在试图筛选它时受到伤害. :)

我正在使用 PostgreSQL 9.1.5 和 pgAdminIII 1.16.0

4

2 回答 2

3

尝试使用-q选项连接。q 代表安静,可能是您需要的。

psql -q -d foo_db

你也可以试试:

  • \set verbosity terse
  • \set quiet on
于 2012-10-19T15:21:56.307 回答
0

如果您想对消息传递和界面进行更多控制,则可能值得转向真正的脚本语言。psycopg2使用 Python或 PerlDBD::Pg等工具编写数据库脚本DBI非常简单。

SQL使用真正的脚本语言不仅可以让您完全控制消息传递,还可以让您控制错误处理,为您提供循环和其他控制结构,并且通常为脚本任务提供比原始模型更好的模型。

于 2012-10-20T02:18:33.177 回答