我正在使用bash和psql将postgresql数据写入文件。我需要将列标题写入输出文件

时间:2016-12-10 12:09:48

标签: bash postgresql psql

脚本:

#!/bin/bash/
PGPASSWORD='*******' psql -h host_name server_name user_name -t -A -F "," -c "select b.id AS booking_id, b.hotel_id as hotel_id, b.invoice_no as invoice_no, b.guest_id as guest_id from bookings b" > /home/ubuntu/scripts/food_suggest/automate/pgsql_data.csv;

当前输出:

12345, 1111, ABCD1234, A111 
12346, 1112, ABCD1235, A112 ...

必需的输出:

booking_id, hotel_id, invoice_no, guest_id
12345, 1111, ABCD1234, A111
12346, 1112, ABCD1235, A112
...

1 个答案:

答案 0 :(得分:0)

我使用简单的COPY命令从bash + psql执行此操作 - https://www.postgresql.org/docs/current/static/sql-copy.html 如果你有逗号或字符串中的字符,请使用参数CSV HEADERFORCE QUOTE。否则它可以正常工作。

对于json导出,我使用COPY (select row_to_json(...而没有CSV param。两者都运作良好。我用它从PG导出到Bigquery。