Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何向pgadmin sql查询添加参数值?_Sql_Postgresql_Parameters_Pgadmin - Fatal编程技术网

如何向pgadmin sql查询添加参数值?

如何向pgadmin sql查询添加参数值?,sql,postgresql,parameters,pgadmin,Sql,Postgresql,Parameters,Pgadmin,在pgadmin3中,我想使用参数化查询来加快调试,只需从php文件复制并粘贴查询即可。但我还没有找到一个选项来添加$1,$2的值。。。参数。可能吗 这是我在循环中构建的查询,遵循以下建议进行空测试: 请注意,手动替换所有参数是乏味的、容易出错的,我希望这是不必要的 提前谢谢。我只知道两种方法 首先是在PostgreSQL手册之后使用示例: PREPARE usrrptplan (int) AS SELECT * FROM users u, logs l WHERE u.usri

在pgadmin3中,我想使用参数化查询来加快调试,只需从php文件复制并粘贴查询即可。但我还没有找到一个选项来添加$1,$2的值。。。参数。可能吗

这是我在循环中构建的查询,遵循以下建议进行空测试:

请注意,手动替换所有参数是乏味的、容易出错的,我希望这是不必要的

提前谢谢。

我只知道两种方法

首先是在PostgreSQL手册之后使用示例:

PREPARE usrrptplan (int) AS
    SELECT * FROM users u, logs l
    WHERE u.usrid=$1 AND u.usrid=l.usrid AND l.date = $2;

EXECUTE usrrptplan(1, current_date);
PREPARE创建一个prepared语句。 执行PREPARE语句时,将解析、分析和重写指定的语句。随后发出EXECUTE命令时,计划并执行准备好的语句

准备好的语句可以接受参数:执行语句时被替换到语句中的值。创建准备好的语句时,使用$1、$2等按位置引用参数

准备好的语句仅在当前数据库会话期间有效。会话结束时,已准备好的语句将被遗忘,因此在再次使用之前必须重新创建该语句


第二是找到并替换$1,$2。。通过适当的值等。但您希望避免这种情况。

在DBeaver中,您可以在查询中使用参数,就像从代码中使用参数一样,因此这将起作用:

select * from accounts where id = :accountId

当您运行查询时,DBeaver将要求您输入:accountId的值并运行查询。

sql developer只需发送一个对话框提示,让您添加它们,甚至保存最后的值,非常方便handy@chrismarx功能不错。遗憾的是,pgadmin 4并没有引入此功能。我切换到了DBeaver,它支持类似SELECT*的参数,其中col1=:param1和col2=:param2
select * from accounts where id = :accountId