这是一件小事,但它对我来说有点烦人,似乎可能有一种配置它的方法。假设我有以下内容:
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
答案 0 :(得分:3)
尝试使用-q
选项进行连接。 q代表Quiet,可能就是你所需要的。
psql -q -d foo_db
您也可以尝试:
\set verbosity terse
\set quiet on
答案 1 :(得分:0)
如果您想要更好地控制消息传递和界面,可能值得转向真正的脚本语言。使用psycopg2
或Perl DBD::Pg
和DBI
在Python等工具中编写数据库脚本非常简单。
使用真正的脚本语言不仅可以让您完全控制消息传递,还可以控制错误处理,为您提供循环和其他控制结构,并且通常提供比原始SQL
更好的模型用于脚本任务。