3

更新:此特定问题与 psql 包含的脚本无关。包含的脚本中的变量按预期进行插值。实际问题是由于在 SQL 函数定义中的 $$ 引号内使用 psql 变量导致的,并在此问题中进行了描述

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

有没有一种简单的方法可以将变量传递给 psql 中包含的脚本?

我正在使用 psql 版本 9.3.1。

4

1 回答 1

3

看看--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;
于 2013-11-07T21:27:55.903 回答