在pgAdmin查询窗口执行带参数SQL时出现ERROR: there is no parameter $1错误
PostgreSQL中"there is no parameter $1"报错解决
你写的SQL查询逻辑本身没问题,但在pgAdmin 4普通查询窗口执行时出现ERROR: there is no parameter $1错误,原因是:
$1、$2是**PostgreSQL预编译语句(Prepared Statement)**的参数占位符,这种写法主要用于Java、Python等应用程序代码中,由程序在执行时动态传入参数值。但pgAdmin的普通查询执行模式不会识别这种占位符,也不会提示你输入参数,直接执行就会报错找不到对应参数。
两种解决方法:
- 直接替换占位符为实际值:把
$1和$2换成具体的用户ID和状态值,注意字符串类型的值要加单引号,比如:SELECT a.type, SUM(coalesce(a.value, 0)) AS value FROM app.activity a WHERE a.user_id = 1001 and a.status = 'completed' GROUP BY a.type ORDER BY a.type - 使用pgAdmin的参数查询功能:在pgAdmin中,不要直接点"执行"按钮,而是右键查询窗口,选择Execute with parameters(或使用对应快捷键),此时会弹出参数输入窗口,分别填入
$1和$2对应的数值/字符串,即可正常执行查询。
内容的提问来源于stack exchange,提问作者AmericaDoodles
相关产品推荐
相关产品推荐

