如何通过终端在psql中保存查询

问题描述 投票:1回答:2

我在PSQL中创建了一个查询并运行并希望保存它。查询示例:

CREATE VIEW total_revenue_per_customer AS SELECT
customers.id, customers.first_name, customers.last_name,
SUM(items.price) FROM customers                                                          
INNER JOIN purchases ON customers.id = purchases.customer_id
INNER JOIN items ON purchases.item_id = items.id
GROUP BY customers.id;

终端保存查询的突击队是什么?

postgresql psql postgresql-10
2个回答
1
投票

首先,我在工作目录中创建一个空文本文件:

filename.txt     ("remember to give permission to edit and modify")

现在,使用psql元命令,\ o我们可以安排将来的查询结果写入提供的文件名。

\o filename.txt

如上所示,我们可以看到简单语法结构的一个变体是:

\o filename.txt

创建我的查询并运行

CREATE VIEW total_revenue_per_customer AS SELECT
customers.id, customers.first_name, customers.last_name,
SUM(items.price) FROM customers                                                          
INNER JOIN purchases ON customers.id = purchases.customer_id
INNER JOIN items ON purchases.item_id = items.id
GROUP BY customers.id;

保存在out.txt中

由于\o元命令在查询缓冲区中仍处于活动状态,因此您可以通过发出另一个\o元命令将其清除,并继续执行正常活动,而无需向指定文件写入任何其他内容。


0
投票

最后执行的命令也可以在psql的外部编辑器中打开。命令是\e,在大多数系统上都会打开vi中的命令缓冲区。这将创建一个临时文件,但没有什么能阻止您将另一个副本保存在/tmp目录之外。此外,您可以使用环境变量EDITOR控制您选择的编辑器,可以使用psql命令设置,而无需关闭当前的\setenv会话。

如果要查找更多有用的命令,请参阅docs for psql。它读得非常好,实际上非常有帮助。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.