我已经做了几个星期的研究,发现了一些建议,在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模式吗?

最佳答案

你提到的“tuple_only”让我怀疑你说的是psql功能,它是命令行界面,完全独立于PostgreSQL本身。
如果我猜对了,这将满足您的要求:

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

NOTICE:  foo

\t。。相当于打开/关闭
\pset tuples_only。。抑制来自psql的反馈
\set QUIET。。标记参数的结尾并继续分析SQL命令
More details in the manual.

关于postgresql - 在tuple_only模式下引发通知功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24560963/

10-16 11:41