使用 ssh 在 postgres 中执行多行查询的便捷方法是什么?

使用 ssh 在 postgres 中执行多行查询的便捷方法是什么?

假设我需要在控制台中手写一些查询,执行CREATE TABLE语句等多行查询的最有效方法是什么?

我习惯使用 Microsoft Management Studio,但现在发现自己必须即时学习 PostgreSQL。

答案1

下面将带您进入 PostgreSQL 的交互式终端:

$ psql <your database name>

然后输入\e(或\edit)打开编辑器(vi默认):

# \e

写一些查询:

select now();

最后,保存并退出您的编辑器(例如:wqvi),然后psql将运行您刚刚编写的查询。

要设置不同的编辑器,例如vimnano,请设置以下环境变量之一:PSQL_EDITOREDITORVISUAL

有关详细信息,请参阅For more information, seehttps://www.postgresql.org/docs/current/app-psql.html并搜索\e

答案2

您可以在 bash(.sh 文件)中使用此语法:

psql postgres://postgres:postgres@localhost:5432/postgres << SQL
CREATE TABLE "public"."links" (
  id bigint PRIMARY KEY,
  from_id bigint DEFAULT 0,
  to_id bigint DEFAULT 0,
  type_id bigint NOT NULL
);
SQL

答案3

实际上没有“多行查询”这样的东西 - 就 PostgreSQL 而言,所有空格和换行符都是没有意义的(除非它们出现在字符串中,或​​者我们谈论语句COPY或其他一些特殊位置中的制表符等)。

通过 SSH 在“控制台”上编写查询通常使用psqlPostgres 交互式终端工具(请参阅文档了解更多信息)。

你可以通过包含查询的文本文件使用psql-f选项。

您还可以psql在命令行上传递查询(根据您的 shell 适当引用),或者通过 STDIN(标准输入流)将它们传入 - 请参阅选项-c

答案4

您可以将查询写入临时文件并使用以下方式执行psql -f /path/to/temp/file

相关内容