我使用psql的\dt列出数据库中的所有表,我需要保存结果。

将psql命令的结果导出到文件的语法是什么?


当前回答

\copy是一个postgres命令,可以为任何用户工作。不知道它是否适用于\dt,但一般语法是从以下链接复制的Postgres SQL复制语法

\copy (select * from tempTable limit 100) to 'filenameinquotes' with header delimiter as ','

上述操作将选择查询的输出保存在csv文件提供的文件名中

编辑:

对于我的psql服务器,以下命令工作,这是一个旧版本v8.5

copy (select * from table1) to 'full_path_filename' csv header;

其他回答

使用下面的查询将结果存储在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;

希望这对你有所帮助。

\copy是一个postgres命令,可以为任何用户工作。不知道它是否适用于\dt,但一般语法是从以下链接复制的Postgres SQL复制语法

\copy (select * from tempTable limit 100) to 'filenameinquotes' with header delimiter as ','

上述操作将选择查询的输出保存在csv文件提供的文件名中

编辑:

对于我的psql服务器,以下命令工作,这是一个旧版本v8.5

copy (select * from table1) to 'full_path_filename' csv 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
COPY tablename TO '/tmp/output.csv' DELIMITER ',' CSV HEADER;

该命令用于将整个表存储为CSV格式

使用pgsql命令的o参数。

-o,——output=FILENAME将查询结果发送到文件(或|管道)

psql -d DatabaseName -U UserName -c "SELECT * FROM TABLE" -o /root/Desktop/file.txt