我试图打破一个涉及psql
命令字符串(即psql -c
)的长命令行,这似乎会导致错误。例如,使用PostgreSQL 9.5和Ubuntu 16.04:
$ psql -c "\\dt"
工作正常,而
$ psql -c "
> \\dt
> "
产生
ERROR: syntax error at or near "\"
LINE 2: \dt
出于好奇,何时可以将新行(即\n
)插入psql
命令字符串?
答案 0 :(得分:1)
命令 必须是服务器可完全解析的命令字符串(即,它不包含psql特定的功能)或单个反斜杠命令
https://www.postgresql.org/docs/current/static/app-psql.html
似乎psql
无法理解带有前导新行的反斜杠命令。
作为替代方案,您可以使用管道echo
命令,该命令也在文档中进行了描述。例如:
$ echo '
> \d
> select 1 as x;' | psql postgres
List of relations
Schema | Name | Type | Owner
--------+-------+------+----------
public | dummy | view | postgres
(1 row)
x
---
1
(1 row)