SQL 执行时打印到控制台

Bas*_*que 2 postgresql

当执行多个 SQL 命令时,例如在pgAdmin SQL 编辑器中,如何将一些字符串打印到控制台(pgAdmin 中的输出窗格)。我想监控执行情况。

UPDATE x
SET a = b 
WHERE a IS NULL
;

Print to console --> Finished x.

UPDATE y
SET a = b 
WHERE a IS NULL
;

Print to console --> Finished y.
Run Code Online (Sandbox Code Playgroud)

我的问题与StackOverflow Question相同。或者,正如克雷格·林格(Craig Ringer)对这个问题的解释:

您是否希望通过将 PgAdmin-III 运行的 SQL 查询打印到标准错误(通过在 cmd.exe 交互式控制台上启动 PgAdmin-III 来查看)来观察它们?


我看过有关的评论\echo 'some_text'。但这给了我错误:

ERROR: syntax error at or near "\"
SQL state: 42601
Run Code Online (Sandbox Code Playgroud)

Yan*_*hon 5

我发现的唯一方法是通过存储过程

CREATE OR REPLACE FUNCTION print_notice(msg text) 
  RETURNS integer AS 
$$ 
DECLARE 
BEGIN 
    RAISE NOTICE USING MESSAGE = msg;
    RETURN null;
END; 
$$ 
LANGUAGE 'plpgsql' IMMUTABLE; 
Run Code Online (Sandbox Code Playgroud)

所以,执行SELECT print_notice('Foo ' || someText || ' !');

将产生(例如):

NOTICE:  Foo whatever !
query result with 1 row discarded.
Run Code Online (Sandbox Code Playgroud)

我不确定如果没有SELECTquery ... row discarded消息是否可以完成此操作。但它有效。