我使用psql的\dt列出数据库中的所有表,我需要保存结果。
将psql命令的结果导出到文件的语法是什么?
我使用psql的\dt列出数据库中的所有表,我需要保存结果。
将psql命令的结果导出到文件的语法是什么?
当前回答
docker方法
通过PSQL命令
docker exec -i %containerid% psql -U %user% -c '\dt' > tables.txt
或从SQL文件查询
docker exec -i %containerid% psql -U %user% < file.sql > data.txt
其他回答
使用下面的查询将结果存储在CSV文件中
\copy (your query) to 'file path' csv header;
例子
\copy (select name,date_order from purchase_order) to '/home/ankit/Desktop/result.csv' cvs header;
希望这对你有所帮助。
从psql的帮助(\?):
\o [FILE]将所有查询结果发送到文件或|管道
命令序列如下所示:
[wist@scifres ~]$ psql db
Welcome to psql 8.3.6, the PostgreSQL interactive terminal
db=>\o out.txt
db=>\dt
然后任何db操作输出都将被写入out.txt。 输入'\o'将输出恢复到控制台。
db=>\o
使用pgsql命令的o参数。
-o,——output=FILENAME将查询结果发送到文件(或|管道)
psql -d DatabaseName -U UserName -c "SELECT * FROM TABLE" -o /root/Desktop/file.txt
我假设存在一些内部的psql命令,但你也可以从util-linux-ng包中运行脚本命令:
描述 脚本使打印在终端上的所有内容的typescript。
COPY tablename TO '/tmp/output.csv' DELIMITER ',' CSV HEADER;
该命令用于将整个表存储为CSV格式