更新:此特定问题与随附的PSQL脚本无关。随附的脚本中的变量按预期进行了插值。实际问题来自SQL函数定义中$$引号内部使用PSQL变量的结果 在这个问题中描述.

我正在使用PSQL变量在相当长的SQL脚本中从命令行中设置一些参数(表名,值)。该脚本已经太长了,我将其分为几个部分,并使用它们将其包括在主脚本中 \ir subscript.sql 句法。但是,主脚本的变量未传递给下标。这很奇怪,因为文档说 \i file 等效于在键盘上键入文件,即应保留脚本环境。

是否有一种简单的方法将变量传递给PSQL中的脚本?

我正在使用PSQL版本9.3.1。

有帮助吗?

解决方案

看一下 --variable=http://www.postgresql.org/docs/current/static/app-psql.html

例如。

psql -d somedb -U someuser -f yourscript.sql --variable=Foo=foobar

在您的脚本中,您可能有:

UPDATE sometable SET somecol = :Foo;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top