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