El *_*apo 31 postgresql postgresql-9.1
这听起来应该是一件非常容易的事情,但是,我无法找到任何地方如何做到这一点.
我有一个.sql文件,我正在构建升级到我的应用程序,改变表,插入/更新等.
我想在每个命令完成后写入屏幕.
所以,例如,如果我有类似的东西:
insert into X...
Run Code Online (Sandbox Code Playgroud)
我想看到类似的东西,
开始插入表X.
完成插入表X
这在Postgres有可能吗?
mu *_*ort 45
如果您只是在提供一大堆SQL,psql那么您有几个选择.
您可以运行psql使用--echo-all:
-a
--echo-all
在读取所有输入行时将其打印到标准输出.这对于脚本处理比交互模式更有用.这相当于将变量设置ECHO为all.
那个和另一个"回声这种类型的所有"选项(参见手册)可能太吵了.如果您只想手动打印,请使用\echo:
\echotext[...]
打印标准输出的参数,用一个空格分隔,后跟换行符.这对于脚本输出中的散布信息非常有用.
所以你可以说:
\echo 'Starting to insert into table X'
-- big pile of inserts go here...
\echo 'Finished inserting into table X'
Run Code Online (Sandbox Code Playgroud)
通过:https://stackoverflow.com/a/18828523/2014857
DO language plpgsql $$
BEGIN
RAISE NOTICE 'hello, world!';
END
$$;
Run Code Online (Sandbox Code Playgroud)
根据你正在做的事情,我会担心做一堆匿名代码块.您可以考虑将上述内容存储为函数,并传入您想要记录的任何值.
可能有更好的方法。但是,如果您需要使用原始SQL,请尝试以下操作:
SELECT NULL AS "Starting to insert into table X";
-- big pile of inserts go here...
SELECT NULL AS "Finished inserting into table X";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31253 次 |
| 最近记录: |