使用 cmd 行参数将 PSQL table 导出到 CSV 文件

Export PSQL table to CSV file using cmd line args

我正在尝试将我的 PSQL table 导出到 CSV 文件。网上看了很多攻略,比如Save PL/pgSQL output from PostgreSQL to a CSV file

从这些帖子我已经弄明白了

\copy (Select * From foo) To '/tmp/test.csv' With CSV

但是我不想指定路径,我希望用户能够通过导出 shell 脚本输入它。是否可以将 args 从 .sh 脚本传递给 .sql 脚本?

我找到了解决方案。

在我的 bash 脚本中,我使用了类似于以下内容的东西

psql  -c "\copy (SELECT * FROM users) TO '""'" DELIMINTER ',' CSV HEADER"

此代码从第一个参数指定的数据库中复制用户 table,并将其导出到位于第二个参数的 csv 文件中