为什么我得到一个语法错误时,试图使用-v标志在psql命令的变量?



我试图在zsh shell中使用以下psql命令向数据库发送查询:

psql -Atx $mydburl -v myvar=1 -c "SELECT :myvar" 

我得到以下错误:

ERROR:  syntax error at or near ":"
LINE 1: SELECT :myvar
^

然而,当我使用管道时,这工作得很好:

echo "SELECT :myvar" | psql -Atx $mydburl -v myvar=1  

,它产生预期结果:

?column?|1

这是怎么回事?

按文档说明:

-ccommand
[…]
command必须是服务器完全可解析的命令字符串(即,它不包含psql特定的功能),或者是单个反斜杠命令。

最新更新