如何在 PostgreSQL 中获取 SQL 脚本日志

问题描述 投票:0回答:1

作为一个开发团队,我们只能访问开发数据库来更改表、视图等。当涉及到测试、阶段和生产环境时,我们将“SQL 脚本”发送给 DBA,以便他们可以在相应的更高环境下运行。

不幸的是,DBA 只向我们提供了脚本中最后一个 SQL 语句的执行日志,因为“这是 pgAdmin 的限制”。我们对脚本的其余部分是如何进行的一无所知,即使是在产品中也是如此。

例如,如果 SQL 脚本有 5 个 SQL 查询,如下所示:

insert into ...
delete from ...
insert into ...
update ...
update ...

DBA 只向我们发回以下单个日志行(我们假设对应于最后一个查询):

Query returned successfully in 78 msec

是否可以使用 pgAdmin 或其他工具获取脚本中每个查询的成功/失败状态以及受影响的行数?

database postgresql logging pgadmin
1个回答
0
投票

您可以创建自定义 SQL 脚本来执行块中的每个查询并捕获结果。该方法可以返回每个查询的状态以及受影响的行数。就像下面这样

INSERT INTO my_table (column1) VALUES ('value1') RETURNING id INTO v_result;
GET DIAGNOSTICS v_rows_affected = ROW_COUNT;
RAISE NOTICE 'Query 1 affected % rows', v_rows_affected;
© www.soinside.com 2019 - 2024. All rights reserved.