Chad Harrison Asked: 2012-08-08 17:32:18 +0800 CST2012-08-08 17:32:18 +0800 CST 2012-08-08 17:32:18 +0800 CST 使用 ssh 在 postgres 中执行多行查询的便捷方法是什么? 772 假设我需要在控制台中手写一些查询,执行多行查询(如CREATE TABLE语句)的最有效方法是什么? 我习惯于使用 Microsoft Management Studio,但现在我发现自己必须即时了解 PostgreSQL。 postgresql 5 个回答 Voted Best Answer TheGrimmScientist 2016-10-13T13:59:31+08:002016-10-13T13:59:31+08:00 以下将带您进入 PostgreSQL 的交互式终端: $ psql <your database name> 然后输入\e(或\edit)打开编辑器(vi默认): # \e 写一些查询: select now(); 最后,保存并退出您的编辑器(例如:wq在 中vi),然后psql将运行您刚刚编写的查询。 要设置不同的编辑器,例如vim或nano,请设置以下环境变量之一:PSQL_EDITOR、EDITOR、VISUAL。 有关详细信息,请参阅https://www.postgresql.org/docs/current/app-psql.html并搜索\e. voretaq7 2012-08-08T17:43:01+08:002012-08-08T17:43:01+08:00 COPY确实没有“多行查询”这样的东西——就 PostgreSQL 而言,所有空格和换行符都是没有意义的(除非它们出现在字符串中,或者我们在语句或语句中谈论制表符等)其他一些特殊的地方)。 通过 SSH“在控制台上”编写查询通常是使用该psql工具完成的,该工具是 Postgres 交互式终端(有关更多信息,请参阅文档)。 您可以将包含查询的文本文件传递给psql使用该-f选项。 您还可以psql在命令行上将查询传递给(根据您的 shell 引用),或通过 STDIN(标准输入流)将它们通过管道输入 - 请参阅-c选项。 Alex 2020-04-16T00:05:44+08:002020-04-16T00:05:44+08:00 显而易见,但如果有人不知道,您可以直接在 psql 提示符中编写多行语句: psql -h localhost -p 5432 -U postgres public public=# SELECT public=# * public=# FROM public=# mytable public=# LIMIT 1; 请注意尾随;字符 - 任何 SQL 命令只有在发出该字符后才会执行。因此,最简单的方法是简单地复制和粘贴带有尾随;. Konard 2021-05-14T06:31:07+08:002021-05-14T06:31:07+08:00 您可以在 bash(.sh 文件)中使用此语法: psql postgres://postgres:postgres@localhost:5432/postgres << SQL ALTER TABLE table DISABLE TRIGGER all; TRUNCATE table; ALTER SEQUENCE table_id_seq RESTART WITH 1; SQL Nam G VU 2018-04-23T21:44:11+08:002018-04-23T21:44:11+08:00 您可以将查询写入临时文件并使用psql -f /path/to/temp/file
以下将带您进入 PostgreSQL 的交互式终端:
然后输入
\e
(或\edit
)打开编辑器(vi
默认):写一些查询:
最后,保存并退出您的编辑器(例如
:wq
在 中vi
),然后psql
将运行您刚刚编写的查询。要设置不同的编辑器,例如
vim
或nano
,请设置以下环境变量之一:PSQL_EDITOR
、EDITOR
、VISUAL
。有关详细信息,请参阅https://www.postgresql.org/docs/current/app-psql.html并搜索
\e
.COPY
确实没有“多行查询”这样的东西——就 PostgreSQL 而言,所有空格和换行符都是没有意义的(除非它们出现在字符串中,或者我们在语句或语句中谈论制表符等)其他一些特殊的地方)。通过 SSH“在控制台上”编写查询通常是使用该
psql
工具完成的,该工具是 Postgres 交互式终端(有关更多信息,请参阅文档)。您可以将包含查询的文本文件传递给
psql
使用该-f
选项。您还可以
psql
在命令行上将查询传递给(根据您的 shell 引用),或通过 STDIN(标准输入流)将它们通过管道输入 - 请参阅-c
选项。显而易见,但如果有人不知道,您可以直接在 psql 提示符中编写多行语句:
请注意尾随
;
字符 - 任何 SQL 命令只有在发出该字符后才会执行。因此,最简单的方法是简单地复制和粘贴带有尾随;
.您可以在 bash(.sh 文件)中使用此语法:
您可以将查询写入临时文件并使用
psql -f /path/to/temp/file