我正在创建PostgreSQL预准备语句,如下所示.

PREPARE fetch_users AS SELECT *
FROM "user" u
WHERE 
    u.email = $1
LIMIT 1;

它正在成功创建,我可以在pg_prepared_statements表中看到它.

但是,当我这么做时,

EXECUTE fetch_users('testemail@test.com');

我没有从数据库中得到任何结果,尽管SELECT查询在独立运行时会返回结果.

我是否正确地使用了预准备语句?

Note: I am using PostgreSQL version: 15.1 with Dbeaver. When I run the prepared statement I get this prompt. enter image description here

我不输入任何值,并 Select Ok.当执行该语句时,这是输出.

enter image description here

似乎空值被插入到准备好的语句中.

推荐答案

在提示中,您需要单击忽略按钮:

enter image description here

这样,它就不会在您的预准备语句中放置任何预定义的参数值.

Postgresql相关问答推荐

到第二天的Postgres计时器

为MCV扩展统计设置统计目标

让Docker Compose Container等待容器PostgreSQL并恢复

如何重新格式化已获取的 psql 查询输出?

postgres hierarchy - 用祖先的值填充缺失值

带有附加组的时间刻度 interpolated_average

Cloud SQL 时间点 数据驻留

如何在 Sequelize ORM 中插入 PostGIS GEOMETRY 点?

全文搜索(Postgres)与Elastic search

PostgreSQL INSERT 插入一个枚举数组

用于更改 postgresql 用户密码的 bash 脚本

子查询的自连接

判断materialized视图的上次刷新时间

postgres - 比较两个数组

什么是 Postgres session?

使用 Postgres 在 Rust 的 Diesel 库中添加时间戳

psql 将默认 statement_timeout 设置为 postgres 中的用户

Postgresql 用随机值更新每一行

PostgreSQL - pg_config -bash:pg_config:command not found

PostgreSQL - 如何将数字字段中的秒数转换为 HH:MM:SS