通过psql在postgresql中执行postgres扩展查询

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

如何在扩展模式下通过

psql
命令行执行 postgresql 查询(意味着我想查看解析、绑定和执行数据包)?

我已经执行了

PREPARE
EXECUTE
命令,但是当我通过 Wireshark 捕获发送的数据包时,我发现它们是作为“简单查询”数据包发送的。

postgresql protocols psql
2个回答
2
投票

PREPARE
EXECUTE
语句都是SQL语句,将作为简单查询(Q)发送。

如果你想查看绑定、解析和执行数据包,你必须编写一些代码。几乎每个 PostgreSQL 接口都可以使用扩展模式。

用 C、Java、Python 或您选择的其他语言编写一个小程序。


0
投票

Postgres 对此添加了一些支持。请参阅版本 17 的文档:

https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-META-COMMAND-BIND

你可以运行:

INSERT INTO tbl1 VALUES ($1, $2) \bind 'first value' 'second value' \g

这将使用扩展协议。来自文档:

该命令导致使用扩展查询协议(参见第 53.1.2 节),这与使用简单查询协议的普通 psql 操作不同。因此,此命令可用于测试 psql 的扩展查询协议。 (即使查询没有参数并且该命令指定零参数,也会使用扩展查询协议。)该命令仅影响下一个执行的查询;所有后续查询将默认使用简单查询协议。

© www.soinside.com 2019 - 2024. All rights reserved.