在tuple_only模式下提升通知功能

时间:2014-07-03 18:31:27

标签: postgresql psql

我已经做了几个星期的研究,并发现了一些建议,在postgres中使用Raise Notice功能来清理脚本,我喜欢这个想法。

CREATE OR REPLACE FUNCTION raisenoticefunction(in errorMessage text) 
RETURNS void 
AS 
$$
BEGIN
    RAISE NOTICE '%', errorMessage;
END;
$$ 
language plpgsql;

因此,不必通过所有脚本执行此操作(由于我们的编码标准经常出现):

DO LANGUAGE plpgsql $$
BEGIN
    RAISE NOTICE 'Creating table customerOrders';
END $$;

我可以这样做,它更清晰,更易于阅读和输入:

SELECT raisenoticefunction('Creating table customerOrders');

问题是我想把这个函数放在tuple_only模式下。我不希望通过通知输出列标题或丢弃的行页脚。

我无法在命令行或配置文件中设置tuple_only模式,因为我不想为所有功能关闭它,因为有些人可能需要此信息。有谁知道如何将单个函数设置为tuple_only模式?

1 个答案:

答案 0 :(得分:1)

你提到" tuple_only"让我怀疑你是在谈论psql功能,它是命令行界面,与PostgreSQL本身完全分开。

如果我猜对了,这就可以满足你的要求:

test=# \set QUIET \t \\ SELECT raisenoticefunction('foo'); \t \set QUIET off

NOTICE:  foo

\t ..相当于\pset tuples_only - 切换开/关
\set QUIET ..禁止来自psql的反馈
\\ ..标记参数的结束并继续解析SQL命令

More details in the manual.