PostgreSQL中的用户定义变量
我想在PostgreSQL中实现以下MySQL脚本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
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
的效果适用于当前会话的持续时间,并且仅在同一会话中可见<代码>仅为事务设置本地
。有更多方法可以设置选项:,