dag*_*da1 10 postgresql variables pgadmin psql
如果我在psql终端,那么我可以声明并使用这样的变量:
\set message_id soifsdaofisd.gmail.com;
select * from emails where message_id = ':message_id';
Run Code Online (Sandbox Code Playgroud)
我怎么能在pgAdmin中这样做?
我在pgAdmin中尝试这个时出错:
错误:"CALAdkA4YC0"或其附近的语法错误第3行:设置message_id soifsdaofisd.gmail.com.
\set 是psql(交互式命令行终端)的一个功能,在pgAdmin中不可用.
PostgreSQL通常不使用普通SQL中的变量.您可以在匿名块(语句)或函数中使用PL/pgSQL代码.DO
但是,您可以(ab)使用自定义选项,用于服务器端"变量",与您当前使用的客户端无关:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Run Code Online (Sandbox Code Playgroud)
这个相关答案的细节:
PostgreSQL中用户定义的变量
还有pgScript,它是pgAdmin查询工具中的本地脚本扩展,您可以在其中使用本地变量,与您在psql中可以执行的操作相比.每个文件:
您可以通过从"查询"菜单中选择"执行pgScript"而不是"执行"来运行pgScript脚本,或者按"执行pgScript"工具栏按钮,或者按F6功能键.
pgScript脚本语言参考中的详细信息.
小智 7
当尝试在 pgAdmin 中运行脚本时,我想要类似的东西,我想存储一个值以在多个查询中使用。这是我发现的类似于 SQL
set session vars.batch_id = '82';
select * from batches where batch_id = current_setting('vars.batch_id')::int;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17153 次 |
| 最近记录: |