PostgreSQL中的用户定义变量

PostgreSQL中的用户定义变量,postgresql,variables,dynamic-sql,Postgresql,Variables,Dynamic Sql,我想在PostgreSQL中实现以下MySQL脚本 SET @statement = search_address_query; PREPARE dynquery FROM @statement; EXECUTE dynquery; DEALLOCATE PREPARE dynquery; 如何使用PostgreSQL定义用户定义的变量“@statement”。Postgres通常不在普通SQL中使用变量。但你也可以这样做: SET @statement

我想在PostgreSQL中实现以下MySQL脚本

 SET @statement = search_address_query;
      PREPARE dynquery FROM @statement;
      EXECUTE dynquery;
      DEALLOCATE PREPARE dynquery;

如何使用PostgreSQL定义用户定义的变量“@statement”。

Postgres通常不在普通SQL中使用变量。但你也可以这样做:

 SET @statement = search_address_query;
      PREPARE dynquery FROM @statement;
      EXECUTE dynquery;
      DEALLOCATE PREPARE dynquery;
SET foo.test = 'SELECT bar FROM baz';

SELECT current_setting('foo.test');
了解

在你可以使用它之前

但是,如果没有PL(过程语言),则不能。您可以使用命令执行特殊语句(但不能从中返回数据)。或用于创建执行动态SQL的函数(并且可以以任何可以想象的方式返回数据)

使用动态SQL时,请确保防止SQL注入

相关的:


你能简单地
执行搜索\u地址\u查询吗?自定义设置持续多长时间?这只是一次会议吗?其他会话是否可以全局访问它?重新启动服务后它会持续吗?@Reinsbrain:取决于您如何设置它。
postgresql.conf
中的设置是为每个连接预设的。
SET
的效果适用于当前会话的持续时间,并且仅在同一会话中可见<代码>仅为事务设置本地
。有更多方法可以设置选项:,