【问题标题】:How to save query in psql by terminal如何通过终端在 psql 中保存查询
【发布时间】:2019-07-31 14:43:19
【问题描述】:

我在 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;

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

【问题讨论】:

  • 查看 post 以获取现有视图的 create 语句

标签: postgresql psql postgresql-10


【解决方案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 元命令将其清除,然后继续正常活动,而不向指定文件写入任何其他内容.

【讨论】:

    【解决方案2】:

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

    如果您想找到更多有用的命令,请参阅docs for psql。它读起来非常好,实际上很有帮助。

    【讨论】:

      猜你喜欢
      • 2013-07-06
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2017-09-06
      • 2016-11-22
      • 2016-01-14
      • 1970-01-01
      • 2021-05-07
      相关资源
      最近更新 更多