PostgreSQL 和 PgAdmin 设置会话变量来查询结果

Fre*_*nda 0 postgresql

为什么我会收到此错误?

set session my.vars.id = SELECT "Name" FROM "Client" WHERE "ID" = 1;
SELECT * FROM "Client" WHERE "Name" = current_setting('my.vars.id');
...
ERROR:  syntax error at or near "SELECT"
LINE 1: set session my.vars.id = SELECT "Name" FROM "Client" WHERE "...
                                 ^
Run Code Online (Sandbox Code Playgroud)

Lau*_*lbe 5

因为你只能在SET命令中使用常量。

尝试这个:

SELECT set_config('my.vars.id', "Name", FALSE)
FROM "Client" WHERE "ID" = 1;
Run Code Online (Sandbox Code Playgroud)