使用 \copy 时 psql 中的变量替换

bea*_*nza 9 postgresql psql bulkcopy scripting

我正在使用 psql 命令 \copy 并且我想从 shell 传递一个变量(用于表名),就像我在编写查询脚本时所做的那样。我在 psql 的文档中读到:

该命令的语法类似于 SQL COPY 命令的语法。请注意,因此,特殊的解析规则适用于 \copy 命令。特别是,变量替换规则和反斜杠转义不适用。

这似乎很确定,但是我想知道是否有人知道解决方法?

Erw*_*ter 6

您可以通过将整个命令传递给 psql 来规避此限制:

echo "\copy tbl FROM '/path/to/myfile.pgsql'" | psql mydb
Run Code Online (Sandbox Code Playgroud)