以下是我在Linux Shell Script中尝试过的内容。
psql "dbname=dbname host=host user=user password=password port=port" -A -F ',' -c "select * from table" > /path/sql_output.csv
虽然上面的命令给了我csv格式的输出,但它不是一个好的解决方案。因为这种方法会在很多情况下生成损坏的CSV文件,例如当字段包含引号和逗号时。
我用另一种方法尝试使用COPY命令但是出错了。
psql "dbname=dbname host=host user=user password=password port=port" -c "COPY ( SELECT * FROM TABLE ORDER BY id limit 10 ) TO STDOUT WITH CSV HEADER " > /path/sql_output.csv
任何帮助将非常感激。
注意:我不是超级用户。
要将数据导出到本地文件,您可以使用psql客户端通过使用\o file_redirect.csv
将输出重定向到文件来执行此操作:
\a -- aligned/unaligned
\f , -- field separator , (default is |)
\t -- show rows on/off
\o /tmp/sql_output.csv -- output file
然后:
select * from table;