【问题标题】:Export data from table to CSV file using \copy - psql使用 \copy - psql 将数据从表导出到 CSV 文件
【发布时间】:2018-03-11 04:36:47
【问题描述】:

我有一个连接到 postgres 数据库(版本 9.5)并运行复制命令来生成 CSV 文件的 bash 脚本。它的工作没有任何问题。

pg-source-query() {
    psql --quiet "$DATABASE_SOURCE_URL" <<< $'\set ON_ERROR_STOP true \n'"$1"
}
sql_stm="\copy (SELECT * FROM <table_name>) to '<file_path>' with csv"
pg-target-query "$sql_stm" 

现在我需要使用 SET 运行相同的选择命令,如下所示。

sql_stm="\copy (SET "request.user_id" = &lt;user_id&gt;); SELECT * FROM &lt;table_name&gt; to 'C:\tmp\persons_client.csv' with csv"

现在我遇到了一个错误。 错误:“SET”处或附近的语法错误

我只是想知道为什么我不能在 /Copy(....) 中运行 SET

还是我做错了什么?

谢谢

【问题讨论】:

标签: database bash postgresql psql


【解决方案1】:

好的,终于找到答案了。

sql_stm="(SET "request.user_id" = <user_id>); \copy SELECT * FROM <table_name> to 'C:\tmp\persons_client.csv' with csv"

成功了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多